map(함수, iterable)
순회 가능한 iterable 데이터의 모든 요소를 함수에 적용하여 map 객체로 반환한다.
n=[1,2,3]
result=map(str,n)
print(list(result), type(result)) #['1', '2', '3'] <class 'map'>
map함수를 사용하면 map 객체가 되기 때문에 list로 변환해서 값을 확인한다.
a,b = map(int,input().split()) # 1,2 입력
print(a,b) # 1,2
print(type(a),type(b)) #<class 'int'> <class 'int'>
map 객체로 변환된 것을 각각 변수의 값에 저장했다.
filter(함수, iterable)
함수에 적용해서 True인 요소들만 걸러내어 filter 객체로 반환한다.
def even(num) :
return num % 2 ==0
lst=[1,2,3,4,5,6,7,8,9,10]
result=filter(even,lst)
print(list(result)) #[2, 4, 6, 8, 10]
짝수일 때 True를 반환하는 even이라는 함수를 정의했다.
filter으로 lst 리스트에 even 함수를 적용하여 result로 저장했다.
이것을 리스트로 변환해서 출력하여 결과를 확인한다.
map, filter는 함수를 인자로 받아서 호출하는 고차함수라고 하고
인자로 사용되어 나중에 실행되는 함수를 callback함수(콜백함수)라고 한다.
zip(*iterables)
여러개의 iterable을 모아서 각각의 요소를 하나씩 짝지은 튜플로 묶은 zip 객체로 반환한다.
li1=[1,2,3]
li2=['a','b']
z = zip(li1,li2)
print(list(z)) #[(1, 'a'), (2, 'b')]
zip으로 두개의 리스트를 묶어 각각의 튜플로 묶인 zip 객체가 되었고, 이를 list로 변환하여 출력했다.
각각의 리스트의 짝이 맞을 때 까지만 합쳐졌다.
mat = [[1,2,3],
[4,5,6],
[7,8,9]]
print(*mat) #[1, 2, 3] [4, 5, 6] [7, 8, 9]
print(list(zip(*mat))) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
mat을 *으로 언패킹하고 3개의 요소를 zip으로 묶어주었다.
'Language > Python' 카테고리의 다른 글
파이썬 - lambda 함수 (0) | 2022.07.21 |
---|---|
파이썬 - 범위 Scope / 지역변수,전역변수 / LEGB규칙 (0) | 2022.07.21 |
파이썬 : 함수 정의, 호출 / 매개변수, 인자 / 패킹, 언패킹 / 가변인자, 가변키워드인자 (0) | 2022.07.21 |
파이썬 Falsy / Truthy (0) | 2022.07.21 |
파이썬 조건 표현식(Conditional Expression) (0) | 2022.07.21 |