Split & join
str.split('sep') # sep 기준으로 split 없을 시 공백 기준
"joiner".join(sequential data) # data를 joiner와 함께 concat
List Comprehension
result = [i for i in range(10)]
word_1 = "hello"
word_2 = "world!"
result = [i+j for i in word_1 for j in word_2] # nested for loop
result = [[i+j for i in word_1] for j in word_2] # word_2가 먼저 loop 돎
Enumerate & Zip
alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']
for a, b in zip(alist, blist):
print(a, b)
[c for c in zip(alist, blist)] # tuple로 추출
Lambda
f = (lambda x,y : x + y)
f(1,4)
PEP 8에서는 lambda의 사용을 권장하지 않음
- 이해하기 어려움
- docstring 지원 x
- 익명 함수 출현
- 그래도 많이 씀
Map
ex [1,2,3,4,5]
f = lambda x : x ** 2
list(map(f,ex)) # lambda 함수 가능
- 가능하다면 list comprehension으로 구현
reduce
from functools import reduce
reduce(lambda x, y: x + y, [1,2,3,4,5])
- 앞 함수의 return이 다시 input으로 들어감
Iterable object
cities = ["A", "B", "C"]
memory_addr = iter(cities) # memory에 loading 되지 않음, linked list 형태
next(memory_addr) # "A"
next(memory_addr) # "B"
next(memory_addr) # "C"
Generator
- memory 용량 절약
- Generator Comprehension
- list comprehension과 같은 형태
gen_com = (n*n for n in range(50)) # type = generator
- list comprehension과 같은 형태
- list type, 큰 데이터, 파일 데이터 처리 시 generator 사용할 것
Fucntion passing argument
- Keyword argument - parameter의 변수명을 사용하여 argument를 넘김
- Default argument - parameter의 기본 값 설정
Variable-length asterisk
- 개수가 정해지지 않은 parameter
- Asterisk(*) 기호를 사용
- 입력 값은 tuple 형태
Keyword Variable-length asterisk
- Asterisk 두개 (**) 사용
- 입력 값은 dict type
- keyword = value 형태
- 순서 지키기
Asterisk - unpacking a container
- tuple, list에 들어 있는 값을 unpacking
- 두 개(**)쓰면 dict type을 key=value 형태로 unpacking
'부스트캠프 AI Tech > Python' 카테고리의 다른 글
Module (0) | 2022.01.21 |
---|---|
Object Oriented Programming (0) | 2022.01.21 |
Data Structure (0) | 2022.01.19 |
String (0) | 2022.01.19 |
Conditionals and loops (0) | 2022.01.18 |