파이썬
[ Python ] 문자열 replace로 swap 하기
mminky
2021. 5. 29. 21:58
728x90
* 파이썬의 장점 SWAP!!
a,b = b,a 이렇게 입력하면
a값은 b에, b값은 a에 들어가게 된다. 이런 것을 swap 이라고 한다.
문자열은 이렇게 할 수 없을까 찾아봤는데 특별한 방법은 없는 것 같다.
하지만 이렇게 하면 된다!
예를 들어 a는 b로 , b는 a로 바꾸고 싶다면
다음과 같이 replace를 이용하면 된다.
[ 코드 ]
s='a1 < b < a2'
s_=s.replace('a','@').replace('b','a').replace('@','b')
print(s_)
[ 결과 ]
* 만약 s.replace('a','b').replace('b','a')를 하게 되면 원치 않는 결과가 나온다.
a1<b<a2
-> b1<b<b2 #a가 모두 b로 바뀜ㅠ
-> a1<a<a2 #b가 모두 a로 바뀜
* 따라서 나는 a를 안 쓰는 문자 '@'로 변경한 후, b를 a로 변경했다. 그리고 @를 b로 변경했다.
a1<b<a2
-> @1<b<@2 #a를 @로 바꿈
-> @1<a<@2 #b를 a로 바꿈
-> b1<a<b2 #@를 b로 바꿈
- 참고 -
더보기

[ 코드 ]
s='box.__high_x<self.__low_x or self.__high_x<box.__low_'
s_=s.replace('self','@').replace('box','self').replace('@','box')
print(s_)
[ 결과 ]

반응형