많은 문자열 쌍과 하나의 큰 문자열 (파일의 내용)이 있습니다. 각 쌍의 첫 번째 구성원의 모든 경우를 각각의 두 번째 구성원으로 바꿔야합니다. I는 BB와 RT와 QQ의 AA 발생할 때마다 교체해야 쌍 ("AA", "BB") 및 ("QQ", "RT")을 갖는 예를 들어파이썬에서 하나의 큰 문자열로 여러 문자열을 대체하는 가장 좋은 방법은 무엇입니까?
,.
쌍의 문자열은 모두 고유하므로 대체 순서는 최종 결과에서 중요하지 않습니다.
내 파이썬 코드는 대부분의 순진입니다 - 나는 모든 쌍 소진 될 때까지 연속으로하려면 string.replace 방법을 적용
>>> s="frsfsdAAsdfvsdfvqqdsff"
>>> pairs=[('AA', 'BB'), ('qq', 'rt')]
>>> for p in pairs:
... s=s.replace(p[0], p[1])
...
>>> s
'frsfsdBBsdfvsdfvrtdsff'
>>>
나는이 큰 문자열에 대한 나쁜 솔루션입니다 생각합니다. 누구든지 더 효율적인 것을 제안 할 수 있습니까?
질문은 파이썬에서하는 방법에 관한 것입니다.
감사합니다.
아,하지만 난 명시 적으로 질문에 명시된하고 난 인용 :
대신이 시도 할 수 ** 쌍의 문자열은 모든 고유, 그래서 교체의 순서가 중요하지 않습니다 최종 결과. ** 주문 부분이 무의미한 경우에도 전제 조건은 그대로 유지됩니다. 모든 문자열은 고유합니다. – mark
@mark : 전혀 차이가 없습니다. 귀하의 솔루션 **은 여전히 작동하지 않습니다 **. 모든 문자열이 고유하지만 솔루션이 여전히 ** 실패 **하여 예상 결과를 얻을 수있는 또 다른 예제를 쉽게 찾을 수 있습니다. –
왜 그런가요? ''mmmABmmmmBBmmmBB''가'True'입니다. – mark