반응형
파이썬 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))
반응형
'Programming > Python' 카테고리의 다른 글
파이썬 Slacker를 이용한 Slack(슬랙) bot 사용 (0) | 2021.01.31 |
---|---|
파이썬 datetime으로 파일명 생성 (0) | 2020.12.20 |
파이썬 PyQt 모듈 (0) | 2020.11.29 |
파이썬 requirement.txt로 pip 패키지 관리 (0) | 2020.11.29 |
파이썬 pickle 모듈 (0) | 2020.11.11 |