Например, я хочу, чтобы функция удаляла строку для использования в HTML (как в Django escape-фильтр):
def escape(string):
"""
Returns the given string with ampersands, quotes and angle
brackets encoded.
"""
return string.replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"')
Это работает, но он быстро становится уродливым и, по-видимому, имеет низкую алгоритмическую производительность (в этом примере строка несколько раз пересекается 5 раз). Что было бы лучше, это примерно так:
def escape(string):
"""
Returns the given string with ampersands, quotes and angle
brackets encoded.
"""
# Note that ampersands must be escaped first; the rest can be escaped in
# any order.
return replace_multi(string.replace('&', '&'),
{'<': '<', '>': '>',
"'": ''', '"': '"'})
Существует ли такая функция или стандартная идиома Python использовать то, что я написал раньше?