파이썬으로 쓰인 모듈의 코드를 읽을 때, 알고 있으면 유용한 함수와 특징들을 알아보자.
join 함수
# for문으로 list 요소들을 합치기보다는
result = ""
for color in colors:
result += color
# join 함수를 활용하자 (권장)
result = "".join(colors)
list comprehension
result1 = [i for i in range(10)]
# 출력: [0, 1, 2, ..., 9]
result2 = [(i, j) for i in range(5) for j in range(5)]
# 출력: [(0,0), (0,1), ..., (4,4)]
result3 = [[(i, j) for i in range(5)] for j in range(5)]
# 출력: [[(0,0), (1,0), ...], [(0,1), ...], ..., [(0,4), ..., (4,4)]]
result4 = [(i, j) for i in range(5) for j in range(5) if (i!=j)]
# 출력: [[(1,0), ...], ..., [(0,4), ..., (3,4)]]
result5 = [(i, j) if (i!=j) else (-1,-1) for i in range(5) for j in range(5)]
# 출력: [[(-1,-1), (0,1), ...], ..., [(0,4), ..., (-1,-1)]]
zip 함수
iterable한 객체들을 같은 인덱스끼리 묶어주는 함수
result = [sum(x) for x in zip([1,2,3], [10,20,30], [100,200,300])]
# 출력: [111, 222, 333]
lambda
lambda (parameter) : (return 값)의 형태로 사용된다.
# 최근에는 가독성을 위해 lambda 대신 def를 사용하는 것을 권장
print((lambda x, y : x+y)(1,4))
# 출력: 5
map 함수
iterable한 객체의 요소들을 함수의 인자로 넣어준다.
ex = [1,2,3]
f = lambda x, y : x+y
print(list(map(f, ex, ex)))
# 출력: [2,4,6]
reduce 함수
iterable한 객체를 대상으로 누적 집계를 위한 함수이다.
그러나, 코드의 직관성이 떨어져 사용을 권장하지 않는다.
from functools import reduce
print(reduce(lambda x, y : x+y, [1,2,3,4,5]))
# 출력: 15
# (((1+2)+3)+4)+5
'Backend > Python' 카테고리의 다른 글
[Python] 파이썬 class의 특징 (0) | 2023.03.07 |
---|---|
[Python] asterisk (0) | 2023.03.07 |
[Python] generator (0) | 2023.03.07 |
[Python] __name__은 무슨 의미일까? (0) | 2023.03.06 |
[Python] 문자열 포맷팅 (0) | 2023.03.06 |