본문 바로가기
파이썬/기초문법

Python으로 문자 치환하기 str.translate

by 행복론자 2020. 9. 20.

Python을 이용해 문자열 치환하는 방법은 흔히 잘 아는 str.replace

이와 비슷한 기능을 하는 str.translate도 있다.

 

원래 문자열 list가 아래처럼 있고 '\n', '\t'을 str.translate를 이용해 공백으로 바꾸고 싶으면

cols = ['\n\t\t\t\t\t\t\t\t\t2017/12\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2018/12\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2019/12\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2020/12(E)\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2019/12\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2020/03\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2020/06\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', '\n\t\t\t\t\t\t\t\t\t2020/09(E)\n\t\t\t\t\t\t\t\t\t\n(IFRS연결)\n', 'Unnamed: 8_level_1']

 

 

str.maketrans에 딕셔너리 형태의 룰을 만들어 원래 문자열(column)에 translate 함수의 인자로 전달하면 된다.

여기서 딕셔너리의 의미는 '\n'과 '\t'를 ''(공백)으로 바꾸겠다는 의미이다. 

{'\n': '', '\t': ''}
new_cols = [column.translate(str.maketrans({'\n': '', '\t': ''})) for column in cols]

 

 

그러면 코드 수행 결과는 다음과 같다.

['2017/12(IFRS연결)', '2018/12(IFRS연결)', '2019/12(IFRS연결)', '2020/12(E)(IFRS연결)', '2019/12(IFRS연결)', '2020/03(IFRS연결)', '2020/06(IFRS연결)', '2020/09(E)(IFRS연결)', 'Unnamed: 8_level_1']

 

 

사용하다보면 string keys in translate table must be of length 1라는 에러가 발생할 수 있는데 이는 변경할 문자는 사실 character 형태로 한글자만 가능하기 때문!

한글자 이상의 문자를 바꾸고 싶으면 익숙한 replace를 사용해야한다. 

string keys in translate table must be of length 1

 


 

같은 코인인데 두 코인 가격 약 8배 차이...

매매보다 안전한 코인 차익알람봇 개발 방법이 궁금하다면?

코인거래소별 프리미엄 체크봇 개발 가이드와 풀소스 전자책 | binance bybit | 코인갭 | 김치프리미엄

 

[공지] 코인거래소별 프리미엄 체크봇 개발 가이드와 풀소스 전자책 | binance bybit | 코인갭 | 김치

여유가 생길 때마다 코인 시세를 자주 보는 직장인이라면 시세확인 및 내가 원하는 타이밍에 매매하는 것이 얼마나 어려운일인지 쉽게 공감할텐데요. 그런 분들에게 오늘 알려드릴 보다 안전하

jsp-dev.tistory.com

 

반응형
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글