원래 질문:
문자열에서 여러 문자를 효율적으로 바꾸는 방법은 무엇입니까? & -> &, # -> # 등?
제공된 코드는 작동하지만 여러 차례 순차적 교체가 필요하므로 비효율적일 수 있습니다.
strs = strs.replace('&', '\&') strs = strs.replace('#', '\#') ...
보다 효율적인 접근 방식은 replacements.
text.replace('&', '\&').replace('#', '\#')
테스트: abc&def#ghi 문자열에서 & 및 # 문자를 바꿉니다.
Method | Time (μs per loop) |
---|---|
Chaining replacements | 0.814 |
다른 다양한 방법으로 문자를 바꿀 수 있습니다. 문자열:
import re rx = re.compile('([&#])') text = rx.sub(r'\', text)
def mk_esc(esc_chars): return lambda s: ''.join(['\' + c if c in esc_chars else c for c in s]) esc = mk_esc('&#') text = esc(text)
chars = "&#" for c in chars: text = text.replace(c, "\" + c)
입력 문자열에 각 문자가 있는지 확인하는 대신 반복자를 사용하여 대체할 문자를 반복합니다. 이렇게 하면 성능이 크게 향상될 수 있습니다.
Python 3은 더 빠른 문자열 조작 기능으로 인해 문자 대체 작업에서 Python 2보다 성능이 뛰어납니다.
위 내용은 문자열의 여러 문자를 효율적으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!