Backend/Python

[Python] 파이썬 코드만의 특징

sangwonYoon 2023. 3. 6. 23:56

파이썬으로 쓰인 모듈의 코드를 읽을 때, 알고 있으면 유용한 함수와 특징들을 알아보자.

 

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