LINUX.ORG.RU

[python] Множественная замена.

 


0

0

Есть длинный текст, в нем надо заменить несколько слов на другие несколько слов, т.е. по словарю.
str.replace() естественно для такой задачи будет не оптимальным решением.
Может быть есть какая-нибудь стандартная функция, чтобы не изобретать велосипед?

★★★★★

Ога, стандартнее некуда: итератор по словам + хешмап.

wfrr ★★☆
()
def latex2html(self, latex):
        l2h = {
                r'\aa': r'å',
                r'\"o': r'ö',
                r'\"a': r'ä',
                r'\'o': r'ó',
                r'\"u': r'ü',
                r'\'\i': r'í',
                r'\'a': r'á',
                r'\`e': r'è',
                r'\'e': r'é',
                r'``': r'“',
                r"''": r'”',
                r'\,': r' ',
                r'{}': r'',
              }
        for k, v in l2h.items():
            latex = latex.replace(k, v)
            latex = latex.replace(k.upper(), v.upper())
        return latex
anonymous
()
Ответ на: комментарий от arhibot

точно неэффективно? Я как раз обратный вывод видел в топике где обсуждали различные алгоритмы.

true_admin ★★★★★
()

Не очень эффективно, но функционально:

conv = [ ('a', 'x'), ('b', 'y'), ('c', 'z') ]
s = "abc"
print reduce(lambda s, r: s.replace(r[0], r[1]), conv, s)

rymis ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.