goodthings4me.tistory.com
■ map()함수는 함수와 리스트를 인자로 받고, 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 다음, 그 결과를 새로운 리스트에 담아준다.
■ filter()함수는 리스트 원소들을 함수에 적용하여 결과가 True인 값만 뽑아서 새로운 리스트를 만든다.
# map
map1 = map(lambda x: x ** 2, range(5))
print(map1) # <map object at 0x000001F888E494F0>
print(list(map1)) # [0, 1, 4, 9, 16]
# filter
odd_nums = filter(lambda x: x % 2, range(10))
print(odd_nums) # <filter object at 0x000001E985049400>
print(list(odd_nums)) # [1, 3, 5, 7, 9]
# map, filter 사용
map_fil = map(lambda x: x**2, filter(lambda x: x % 2 == 0, range(1, 10)))
print(list(map_fil)) # [4, 16, 36, 64]
# list comprehension
list1 = [n ** 2 for n in range(5)]
print(list1) # [0, 1, 4, 9, 16]
list2 = [n for n in range(10) if n % 2]
print(list2) # [1, 3, 5, 7, 9]
list3 = [n ** 2 for n in range(1, 10) if not n % 2]
print(list3) # [4, 16, 36, 64]
※ map이나 filter가 lambda 함수를 사용하는 반면에 리스트 컴프리헨션을 사용하면 간단하게 결과를 도출할 수 있다.
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 딕셔너리(dict) 알아보기 - 생성, 루핑, 컴프리헨션, setfault, orderedDict (0) | 2020.08.29 |
---|---|
[python] Image 다운로드 후 Thumbnail 만들고 이미지 품질 조정하기 (0) | 2020.08.29 |
[python] 피보나치(Fibonacci) (0) | 2020.08.25 |
[python] 주어진 6개의 숫자 맞추기(로또번호 맞추기) (0) | 2020.08.24 |
[python] 입력받은 숫자 리스트에서 최대값과 그 위치(index) 찾기 (0) | 2020.08.24 |
댓글