Programming/Python

파이썬 comprehension, lambda, zip

알로그 2020. 12. 2. 10:06
반응형

파이썬 comprehension, lambda, zip

처음에 파이썬으로 개발하다보면 파이썬스럽게(?) 구현하기가 힘들다.

몇 가지 파이썬틱하게 구현하는 방법을 알아보자.

 

<comprehension>

# 1~ 5의 값 중 n이 3보다 큰 값만 10 곱하기
my = [n*10 for n in range (1, 6) if n > 3]
print(my)

# list를 dictionary 형태로 변경하기
dt = [('a', 1), ('b', 3), ('c', 5)]
d = { k:v for k,v in dt }
print(d)

 

 

<lambda>

data = [(10,20), (70,15), (50,50)]

# 리스트에서 첫 번째 인덱스 값이 max인 값 찾기
mx = max(data, key=lambda v:v[0])
print(mx) 

# 리스트에서 첫 번째 인덱스 값이 50 넘는 값 찾기
mf = filter(lambda v:v[0]>50, data)
print(list(mf))

# 리스트에서 첫 번째 인덱스 값을 기준으로 정렬
ms = sorted(data, key=lambda v:v[0])
print(ms)

# 리스트에서 첫 번째 인덱스 값만 +10 
mm = map(lambda v:v[0]+10, data)
print(list(mm))

 

 

<zip>

a = ['a', 'b', 'c']
b = [1, 2, 3]

# a, b를 튜플 형태로 묶어서 리스트로 반환
z = zip(a, b)
print(list(z))

반응형