map()
map함수는 이터러블 객체를 입력받아 각각의 원소에 특정 함수를 적용한 결과를 반환하는 내장함수 이다.
def square(x):
return x * x
numbers = [1, 2, 3, 4, 5]
square_numbers = list(map(square, numbers))
print(square_numbers) # [1, 4, 9, 16, 25]
1, 2, 3.. 등의 원소가 각각 square의 인자로 전달되어, 제곱된 결과값들로 새로운 객체가 되어 반환되었다.
enumerate()
리스트를 인자로 받고, 리스트의 각 원소에 인덱스를 부여해 튜플로 반환.
for i in enumerate(list1):
print(i)
'''
(0, el1)
(1, el2)
...
'''
zip()
iterable 객체를 인자로 받아서, 그 객체가 담고있는 원소를 접근할 수 있는 iterator를 반환해주는 함수.
a = [1,2,3]
b = ['a', 'b', 'c']
for i in zip(a, b):
print(i)
'''
(1, 'a')
(2, 'b')
(3, 'c')
'''
zip 을 활용한 리스트 만들기 및 리스트 분리(튜플로 반환)
zipped = list(zip(a,b))
'''
[(1, 'a'), (2, 'b'), (3, 'c')]
'''
# zip + unpacking 으로 리스트 분리
a1, b1 = zip(*zipped)
# a1 : (1, 2, 3) - tuple
# b1 : ('a', 'b', 'c') - tuple
zip과 unpacking을 활용하면 2 차원 리스트에서 앞 원소와 뒤 원소를 분리하여 리스트로 만들 때 유용할 것 같다.
filter()
필터 함수는 리스트와 같은 객체에서 조건에 맞는 원하는 값만 추출하기 위해서 주로 사용한다. 함수 내에서 리스트와 같은 인자를 받으면 각 인자가 함수의 매개변수로 전달되고, 함수 내부에서 리턴되는 값만으로 다시 리스트를 만들 수 있다.
def filterTest(varin):
if varin % 2 == 0:
return varin
list1 = [1,2,3,4]
list(filter(filterTest, list1)) #[2,4]
reduce()
이터러블 객체의 각 원소에 대해서 함수를 적용하고, 그 결과값을 이후 계산에 그대로 사용하는 함수이다. 이러한 특성을 이용해 팩토리얼과 같은 함수를 쉽게 구현할 수 있다.
reduce(lambda x, y : x*y, [i for i in range(1, 6)]) # 5! = 120
'Programming > Python' 카테고리의 다른 글
파이썬 이터러블 객체, 이터레이터, 제너레이터, 데코레이터 (2) | 2023.11.27 |
---|---|
아스키 코드 - 문자 간 변환 (2) | 2023.11.26 |
파이썬 변수 앞 * 연산자 (0) | 2023.11.25 |
__dict__ 와 __slots__ (0) | 2023.07.11 |
Pylint (0) | 2023.01.30 |