22년 9월의 공부 - 정규표현식 문자열 재사용, lambda 함수에 if-else 적용하기
포스트
취소

22년 9월의 공부 - 정규표현식 문자열 재사용, lambda 함수에 if-else 적용하기

2022년 9월 동안 검색하고 공부한 것들을 정리한 내용입니다.

1. 정규표현식 문자열 다시 사용하기

다음과 같은 문자열이 있습니다.

1
2
3
price_of_iphone14pro = "128GB: 1550000/256GB: 1700000/512GB: 2000000/1TB: 2300000"
price_of_iphone14pro
# '128GB: 1550000/256GB: 1700000/512GB: 2000000/1TB: 2300000'

‘128GB: 1550000’과 같은 형태를 ‘1550000(128GB)’ 형태로 바꾸고자 합니다. 방법 중 하나는 정규표현식을 통해 ‘용량’과 ‘가격’ 정보를 찾은 후 두 문자열의 위치를 바꿔주는 것입니다.

1
2
3
import re
re.sub(r"(\w+): (\d+)", "\\2(\\1)", price_of_iphone14pro)
# '1550000(128GB)/1700000(256GB)/2000000(512GB)/2300000(1TB)'

2. lambda funtion with if-else

다음과 같이 ‘if-else’ 문이 포함된 lambda 함수를 만들 수 있습니다.

1
2
import re
test = lambda x: str(int(re.sub("(\d)+TB", "\\1", x))*1024) + "GB" if re.search("TB", x) else x

위 함수를 통해 ‘TB’를 ‘GB’로 단위를 바꿀 수 있습니다.

1
2
3
4
print(test("1TB"))
# 1024GB
print(test("1GB"))
# 1GB
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.