Так я использую следующее регулярное выражение для разбора текста и захватить информацию из определенного словаря:Python лямбда, если оператор re.sub
re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1],text)
То, что я хочу сделать, это только его заменить, если что будет replace with - это ключ в отдельном словаре. Логически это будет выглядеть следующим образом:
re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
теперь, если бы я был бежать следующее, я получаю следующее сообщение об ошибке синтаксиса:
>>> re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
File "<stdin>", line 1
re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
^
SyntaxError: invalid syntax
Как я могу заменить только на этом пути?
же ошибка синтаксиса ... и почему бы заявление еще идти после запятой, что отделяет заменить заявление от текста? –
@ RyanSaxe: Извините, я сделал опечатку и оставил «текст» в другом месте, см. Обновленную версию. (Вы должны поместить пробелы после запятых! :-) – BrenBarn
, если вы переместите другое перед запятой, это сработает! спасибо –