-
string
- formatting 에는 3가지 방식이 존재
- string 여러개를 이어 붙이는 동작은 자주 사용되는 동작
- 그러나 아래와 같은 동작은 "메모리 카피" 가 지속적으로 되기 때문에 성능이 느려진다.
while: ans = ans + new
- 메모리 카피 를 하지 않도록 아래와 같이
join()
을 사용 할 수 있다.
tmp = [] while: tmp.append(new) ans = ''.join(tmp)
-
difflib
-
unicodedata
-
re
- re 는 왜 사용할까
- 문자열을 찾는데 쓰는 것
- 잘 모르는 데이터에서 패턴에 맞는 문자열을 찾기 위해서 사용한다
- 기호 체계
- 이산수학 : a-z, A-Z, 0-9
- python 특수:
\w
=글자,\d
=숫자,\s
=공백, ...
- greedy
- group
- re 는 왜 사용할까
-
stringprep
-
2진수 / 16진수
-
unicode
- 인코딩 방식이 아니고, 모든 문자를 2 bytes 숫자로 매핑 시키는 방식
-
encoding
- unicode 를 표현하는 방식
- ASCII
- 7bits 사용 (128개)
- ANSI
- 8bits 로 구성 (256개)
- UTF-8
- unicode 를 위한 가변 길이 문자 인코딩방식 (한글=3bytes, 영어=1byte)
- ANSI 의 단점 보완
-
performance coding
-
linux 시스템 콜을 부르는거는 비용이 매우 비싸다
- write/read 같은 리눅스 명령어를 불러서 쓴다.
- 초당 1000번 정도 밖에 안된다.
- file 쓰기, memory 쓰기 (malloc)
-
python interpereter 안에서 돌아가는 명령어 들은 매우 빠르다.
- a = x + y 같은거
- 초당 50~100만번 정도 가능하다.
- python 에는 메모리 라는게 없다
-