*pythonic code?
- 파이썬 특유 문법을 의미하는 pythonic cnode
- 짧고 이해하기 편함
*Contents
- split & join
- list comprehension -> for loop append보다 빠름
- enumerate & zip
- lambda & map & reduce
- generator
- asterisk
*split 함수
- string type의 값을 "기준값"으로 나눠서 List 형태로 반환
- ex) items = "zero one two three"
- ex) items.split(" ") => ['zero' , 'one' , 'two' , 'three']
- d
*join 함수
- string type의 값을 "기준값"으로 합침
- ex) colors = ["red" , "blue" , "green" , "yellow"]
- ex) "-".join(colors) => 'red-blue-green-yellow'
*list comprehension
- 기존 List 사용하여 간단히 다른 List를 만드는 기법
- 포괄적인 List, 포함되는 리스트라는 의미
- 파이썬에서 가장 많이 사용되는 기법 중 하나
- 일반적으로 for + append 보다 속도가 빠름
*pprint.pprint(" ") => 데이터가 세로로 정렬되어 보기 편함.
*enumerate
- list의 element를 추출할 때 번호를 붙여서 추출
- ex) text = ['in' , 'Group' , 'is' , 'a']
- ex) {i : v.lower() for i, v in enumerate(text)}
- => {0 : 'is' , 1: 'a' , 2: 'group' , 3 : 'in'}
*zip
- 두개의 list의 값을 병렬적으로 추출함
- ex) alist = ["a1", "a2" , "a3"]
- ex) blist = ["b1", "b2" , "b3"]
- [ [a,b] for a , b in zip(alist, blist)]
- => [['a1', 'b1'], ['a2', 'b2'] , ['a3', 'b3]]
*lambda
- 함수 이름 없이, 함수처럼 쓸 수 있는 익명함수
- 수학의 람다 대수에서 유래
- 문법이 어렵고 테스트가 어려움..
- docstring 지원 미비
*map
- 두 개 이상의 list에도 적용 가능함, if filter사용 가능
- ex) ex = [1,2,3,4,5]
- ex) f = lambda x: x**2
- ex) list = (map(f,ex))
- => [1, 4, 9 ,16 ,25]
- 위식을 list comprehension을 활용하면 간단하게 표현 가능 => [f(value) for value in ex]
*reduce
- map function과는 달리 list에 똑같은 함수 적용해서 통합
*Generator
- iterable object의 특수한 형태로 사용해주는 함수
- element가 사용된느 시점에 값을 메모리에 반환
- :yield를 사용해 한번에 하나의 element만 반환함
- 메모리에 주소값만 올려놓고 값을 호출할때 yield가 값을 던짐
- Generator comprehension도 활용 가능 => gen_ex = (n*n for n in range(500))
*When generator?
- list 타입의 데이터를 반환해주는 함수는 generator로 만들어라 => 읽기 쉽고, 중간 과정에서 loop이 중단될 때!
- 대용량 데이터를 처리할 때는 generator expression을 고려 => 데이터가 커도 처리의 어려움이 없음
- 파일 데이터를 처리할 때도 generator를 쓰자
*가변인자 using asterisk
- 개수가 정해지지 않은 변수를 함수의 parameter로 사용하는 법
- Keyword arguments와 함께, argument 추가가 가능
- Asterisk(*) 기호 사용
- tuple type
- 가변인자는 오직 한 개만 마지막 파라미터 위치에 사용가능
*키워드 가변인자
- 파라미터 이름을 따로 지정하지 않고 입력하는 방법
- asterisk(*) 두개를 사용하여 함수의 파라미터를 표시
- dict type
- 가변인자는 오직 한 개만 기존 가변인자 다음에 사용
'부스트캠프 AI Tech > [Week1] Python' 카테고리의 다른 글
[Week1] Python - pandas (0) | 2021.08.06 |
---|---|
[Week1] Python - numpy (0) | 2021.08.06 |
[Week1] Python - Data Structure (0) | 2021.08.04 |