Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- boj
- dynamic programming
- 자바
- DP
- redis
- leetcode
- 튜토리얼
- OOM
- Go언어
- zookeeper
- 파이썬
- scala
- 코드워
- gradle
- Linux
- 프로그래머스
- 리눅스
- Java
- 동적프로그래밍
- programmers
- 주키퍼
- 스칼라
- codewars
- HBase
- 알고리즘
- golang
- docker
- go
- 문제풀이
- Python
Archives
- Today
- Total
파이문
파이썬에서 문자열 합치기 본문
728x90
파이썬에서 문자열 합치기 파이썬에서 기존에 문자열을 다음과 같이 더하여서 종종 사용하였다.
new_str = str + word
그러나 이 방법은 파이썬에서 지양하는 문자열 append 방법이었다.
파이썬에서 문자열은 불변 객체로, 새로운 값을 더하여 문자열을 생성할 경우 기존의 것에서 더해지는 것이 아닌, 새로운 객체가 생성되는 것이었다. (자바의 String과 같다. 얕은 지식으로는 자바의 경우 String대신에 StringBuilder를 사용하라고 했던 것 같다. 자바1.6 이상? 부터는 컴파일러가 좋아져서 그냥 문자열을 더할 때는 + 를 쓴다고 한다. 내부적으로는 빌더를 쓰기 때문에 가독성을 위해서 String을 그냥 사용해도 좋다고. 단, 빌더와 버퍼의 구분은 해야 한다!)
그래서 파이썬에서 굳이 문자열을 더하겠다고 하면 다음과 같이 방법을 써야 한다.
new_str = []
new_str.append(str)
new_str.append(word)
new_str = ''.join(new_str)
소스 코드상에서 면 첫 번째 소스가 훨씬 짧지만 시간을 재면, 두 번째 소스 코드가 훨씬 짧은 실행 속도를 가질 수 있다.
왜냐하면 첫 번째 방법은 gc가 여러번 생성 되기 때문이다.
그러니 문자열 합치기, string concat 을 할 때는 두 번째 방법을 써야한다.
실제로 두 번째 방법이 pythonic way 이기도 하다.
성능상의 문제를 고려해봐도 그렇다. 'Python > Python' 카테고리의 다른 글
파이썬 클래스 상속 (0) | 2017.01.16 |
---|---|
파이썬 얕은 복사와 깊은 복사 (0) | 2017.01.09 |
파이썬에서 switch-case문 사용하기 (0) | 2016.05.25 |
파이썬에서 딕셔너리 키 값 체크하기 (1) | 2016.04.22 |
파이썬에서의 getter와 setter (0) | 2016.04.22 |
Comments