이번 정리에서는 파이썬의 내장함수인 zip 함수에 대해 알아보겠습니다.
zip(*iterables, strict=False)
for item in zip(['mason', 'harriet', 'john'], [1, 2, 3]):
print(item)
print(type(item))
# ('mason', 1)
# <class 'tuple'>
# ('harriet', 2)
# <class 'tuple'>
# ('john', 3)
# <class 'tuple'>
zip 함수는 iterable 객체들을 인자로 전달 받습니다.
이후 각 iterable 객체들의 요소를 동일한 인덱스끼리 묶어 튜플을 생성합니다.
위 예제 코드를 보면 튜플이 생성된 것을 확인할 수 있습니다.
for student, grade in zip(['mason', 'harriet', 'john'], [1, 2, 3]):
print(student)
# mason
# harriet
# john
기존 item 변수를 디스트럭칭(destructuring)하면 '(student, grade)'와 같이 표기할 수 있습니다.
이때 괄호는 생략 가능합니다.
디스트럭처링의 결과로 튜플의 각 요소에 대한 접근이 가능합니다.
students = ['mason', 'harriet', 'john']
age = [20, 22, 24]
type(zip(students, age)) # <class 'zip'>
type(list(zip(students, age))) # <class 'list'>
list 함수를 사용해 zip 객체를 리스트화할 수도 있습니다.
for item in zip(['one', 'two', 'three'], [1, 2]):
print(item)
# ('one', 1)
# ('two', 2)
한 가지 주의할 점은 zip 함수의 인자로 전달하는 iterable 객체들의 길이가 같아야 한다는 점입니다.
각 인자의 길이가 동일하지 않으면 나머지 요소들은 버려지게 됩니다.
students = ['mason', 'harriet', 'john']
math_grade = [100, 96, 82]
math = dict(zip(students, math_grade))
math # {'mason': 100, 'harriet': 96, 'john': 82}
zip 함수를 사용하면 딕셔너리를 만들 수 있습니다.
알고리즘 문제를 풀 때 리스트들을 가지고 딕셔너리를 만들어야 하는 경우가 있는데 이때 유용하게 사용할 수 있습니다.
'파이썬・ML' 카테고리의 다른 글
| 파이썬 enumerate 내장함수 사용하기 (0) | 2023.05.31 |
|---|---|
| 파이썬 map 내장함수 사용하기 (0) | 2023.05.31 |
| 파이썬 집합 함수 총정리 (0) | 2023.05.30 |
| 파이썬 리스트 함수 총정리 (0) | 2023.05.30 |
| 파이썬 UnicodeDecodeError(feat.open함수) (0) | 2023.05.16 |