1) Pythonic Code
- 파이썬 스타일의 코딩 기법
- 파이썬 특유 문법을 활용해 효율적 코드 표현
- 고급 코드를 작성할 수록 더 많이 요구됨
Split & Join
Split
: String Type 의 값을 나누어 List 형태로 반환
.split()
괄호 안 기준으로 문자열을 나눔
Join
: String List 를 합쳐 하나의 String으로 반환할 때 사용
''.join(var)
List Comprehension
- 기존 List를 사용해 간단히 다른 List를 만드는 기법
- 포함되는, 포괄적인 List 라는 의미로 사용
- 파이썬에서 가장 많이 사용되는 기법 중 하나
- for + append 보다 빠른 속도
One Dimentional
[i+j for i in case_1 for j in case_2]
Two Dimentional
[[i+j for i in case_1] for j in case_2]
Enumerate & Zip
Enumerate
: List element 추출 시 번호를 붙여 반환
enumerate(var)
Zip
: 두 개의 list 값을 병렬 추출
for i, (a, b) in enumerate(zip(list_a, list_b))
Lambda & MapReduce
Lambda
: 함수 이름 없이 함수처럼 사용할 수 있는 익명함수, python3 부터 권장하지는 않으나 여전히 많이 쓰임
f = lambda x, y: x + y
Map Function
: Sequence 자료형 각 element에 동일한 function을 적용
- if filter 사용 가능
- 두 개 이상의 list 에도 적용 가능
- python3 부터 iteration 생성 시 list를 붙여주어야 list 사용 가능
- 실행시점의 값을 생성, 메모리 효율적
1 |
|
Reduce Function
: map과 달리 list에 똑같은 함수를 적용해서 통합
from functools import reduce
Asterisk *
: 단순 곱셈, 제곱 연산, 가변 인자 활용 등 다양하게 사용됨
unpacking a container
- tuple, dict 등 자료형 내부 값을 unpacking
- 합수 입력값, zip 등을 유용하게 사용 가능
Collections
: List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조(모듈)
deque
- Stack과 Queue를 지원하는 모듈
- List에 비해 효율적인 자료 저장 방식
1 |
|
- rotate, reverse 등 Linked List의 특정을 지원
- 기존 list 형태 함수 모두 지원
1 |
|
- 기존 list보다 효율적인 자료구조 제공
- 효율적 메모리 구조로 처리 속도 향상
Ordered Dict
- 데이터를 입력한 순서대로 dict를 반환
- dict type의 값을, value 또는 key 값으로 정렬할 때 사용 가능
for k, v in OrderedDict(sorted(d.items(), key=lambda t: t[0])).items():
default Dict
- dict type의 값에 기본 값을 지정해 신규값 생성 시 사용하는 방법
1 |
|
-
하나의 지문에 각 단어가 몇 개나 있는지 세고 싶을 경우 ?
-
Text-mining 접근법 - Vector Space Model
1 |
|
Counter
: Sequence Type의 data element 의 갯수를 dict 형태로 반환
- Dict type, keyword parameter 등도 모두 처리 가능
1 |
|
- set 연산 지원
1 |
|
- word counter 기능 제공
named tuple
- tuple 형태로 data 구조체를 저장하는 방법
- 저장되는 data variable을 사전에 지정해서 저장