[PYTHON] 파이썬에서 문자열 치환 목록
PYTHON파이썬에서 문자열 치환 목록
다음 코드를 작성하는 데 훨씬 짧은 방법이 있습니까?
my_string = my_string.replace('A', '1')
my_string = my_string.replace('B', '2')
my_string = my_string.replace('C', '3')
my_string = my_string.replace('D', '4')
my_string = my_string.replace('E', '5')
정확한 값을 대체 할 필요는 없습니다. 5 회선을 5 개 미만으로 변환하는 방법을 찾고 있습니다.
해결법
-
==============================
1.루프를 사용할 좋은 기회 인 것처럼 보입니다.
루프를 사용할 좋은 기회 인 것처럼 보입니다.
mapping = { 'A':'1', 'B':'2', 'C':'3', 'D':'4', 'E':'5'} for k, v in mapping.iteritems(): my_string = my_string.replace(k, v)
괄호에 신경 쓰지 않는다면 더 빠른 접근 방법이 될 것입니다.
mapping = [ ('A', '1'), ('B', '2'), ('C', '3'), ('D', '4'), ('E', '5') ] for k, v in mapping: my_string = my_string.replace(k, v)
-
==============================
2.string.maketrans ()를 사용하여 str.translate ()에 전달할 매핑 문자열을 쉽게 만들 수 있습니다.
string.maketrans ()를 사용하여 str.translate ()에 전달할 매핑 문자열을 쉽게 만들 수 있습니다.
import string trans = string.maketrans("ABCDE","12345") my_string = my_string.translate(trans)
-
==============================
3.str.translate ()도 살펴보십시오. 유니 코드 문자열을 제공하는 매핑에 따라 문자를 대체하거나 그렇지 않으면 chr (0)에서 chr (255)까지의 각 문자를 바꿀 문자를 알려야합니다.
str.translate ()도 살펴보십시오. 유니 코드 문자열을 제공하는 매핑에 따라 문자를 대체하거나 그렇지 않으면 chr (0)에서 chr (255)까지의 각 문자를 바꿀 문자를 알려야합니다.
-
==============================
4.잘못된 대답을 천천히 원한다면 루프에서 string.replace를 사용하십시오. (이 경우에는 패턴과 대체물이 중복되지 않습니다.)
잘못된 대답을 천천히 원한다면 루프에서 string.replace를 사용하십시오. (이 경우에는 패턴과 대체물이 중복되지 않습니다.)
가능한 중복이나 긴 제목 문자열을 사용하는 일반적인 경우 re.sub :
import re def multisub(subs, subject): "Simultaneously perform all substitutions on the subject string." pattern = '|'.join('(%s)' % re.escape(p) for p, s in subs) substs = [s for p, s in subs] replace = lambda m: substs[m.lastindex - 1] return re.sub(pattern, replace, subject) >>> multisub([('hi', 'bye'), ('bye', 'hi')], 'hi and bye') 'bye and hi'
1 문자 패턴 및 1 문자 또는 0 문자 대체의 특별한 경우에는 string.maketrans를 사용하십시오.
-
==============================
5.
replaceDict = {'A':'1','B':'2','C':'3','D':'4','E':'5'} for key, replacement in replaceDict.items(): my_string = my_string.replace( key, replacement )
-
==============================
6.내가하는 한 가지 방법은 연관된 배열 (사전)을 사용하는 것입니다. 다음은 정규 표현식을 사용하여 LaTeX에 배포 할 파일을 준비 할 때 사용하는 대체 파일의 예입니다.
내가하는 한 가지 방법은 연관된 배열 (사전)을 사용하는 것입니다. 다음은 정규 표현식을 사용하여 LaTeX에 배포 할 파일을 준비 할 때 사용하는 대체 파일의 예입니다.
import re def escapeTexString(string): # Returns TeX-friendly string rep = { # define desired replacements in this dictionary (mapping) '&': '\\&', '%': '\\%', '#': '\\#', '_': '\\_', '{': '\\{', # REGEX Special '}': '\\}', # REGEX Special '~': '\\char"007E{}', # LaTeX Special '$': '\\$', # REGEX Special '\\': '\\char"005C{}', # REGEX/LaTeX Special '^': '\\char"005E{}', # REGEX/LaTeX Special '"': '\\char"FF02{}' } # use these two lines to do the replacement (could be shortened to one line) pattern = re.compile("|".join(map(re.escape,rep.keys()))) # Create single pattern object (key to simultaneous replacement) new_string = pattern.sub(lambda match: rep[match.group(0)], string) return new_string
from https://stackoverflow.com/questions/764360/a-list-of-string-replacements-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 "If if from ipython"테스트를 어떻게 할 수 있습니까? (0) | 2018.10.26 |
---|---|
[PYTHON] 수입이있는 전역 변수 (0) | 2018.10.26 |
[PYTHON] BeautifulSoup 및 lxml.html - 무엇을 선호합니까? [복제] (0) | 2018.10.26 |
[PYTHON] OS가 파이썬에서 Vista인지 확인하는 방법? (0) | 2018.10.26 |
[PYTHON] [x] 대신 operator.itemgetter (x)를 사용해야하는 이유는 무엇입니까? (0) | 2018.10.26 |