이번 포스팅은 파이썬을 사용하면서 알게 된 파이썬의 내장 함수 zip()에 관한 것을 정리한 내용입니다.
zip() 함수
- 파이썬의 내장 함수 zip()은 iterable, 즉 순회 가능한 객체를 인자로 받고 각 자료형의 각각의 요소를 나눈 후 인덱스끼리 잘라서 리스트로 반환해줍니다.
- 여기서 말하는 iterable 자료형은 파이썬에서 리스트, 튜플 같은 반복 가능한 자료형을 의미합니다.
- python에서 zip() 함수는 zip(iterable) 형태로 사용합니다.
- 먼저 타입부터 살펴보겠습니다.
list1 = [1, 2, 3, 4]
list2 = ['one', 'two', 'three', 'four']
print(type(zip(list1,list2)))
결과)
- zip 타입으로 반환하는 것을 확인할 수 있습니다. list형으로 바꾸시려면
list(zip(list1,list2)))
- 이런 식으로 바꿔주시면 타입이 바뀌게 됩니다.
기본 문법
list1 = [1, 2, 3, 4]
list2 = ['one', 'two', 'three', 'four']
for x, y in zip(list1, list2):
print(x, y)
결과)
- 인덱스를 사용하여 같은 값이 나오게 구현한 것을 보신다면 이해가 빠를 것이라 생각합니다.
list1 = [1, 2, 3, 4]
list2 = ['one', 'two', 'three', 'four']
for i in range(4):
print(list1[i], list2[i])
결과)
- 이렇게 인덱스가 같은 요소를 나눈 후 묶어주는 것을 볼 수 있습니다.
사용 예시
- zip() 함수를 이용하면 여러 iterable 객체를 2개 이상 넘겨 처리를 할 수 있습니다.
a = "12345"
b = "qwert"
c = "asdfg"
for x, y, z in zip(a, b, c):
print(x, y, z)
결과)
- 결과를 보시면 for문을 한번 돌려 나온 것을 확인할 수 있습니다.
주의 사항
- zip() 함수를 사용할 때 주의 사항이 있습니다. 그것은 함수로 넘길 때의 인자의 길이를 똑같이 해야 한다는 것입니다.
- 길이를 다르게 한다면 가장 짧은 길이의 인자에 맞춰지고 나머지는 버려지게 됩니다.
예시)
list1 = [1, 2, 3, 4, 5]
list2 = ["one", "two", "three"]
for x, y in zip(list1, list2) :
print(x, y)
결과)
- list2의 길이에 맞춰 출력되는 것을 볼 수 있습니다.
이렇게 zip() 함수에 대해 알아봤습니다.
zip() 함수는 파이썬을 사용할 때 조금 더 파이썬스럽게 만들어주는 함수가 아닐까 생각합니다.
다음 포스팅으로 찾아오겠습니다 :)
'Python > Python 정리' 카테고리의 다른 글
[Python] for ~ else 문 정리 (0) | 2022.06.09 |
---|---|
[Python] filter() 함수 정리 (0) | 2022.06.08 |
[Python] enumerate 이해 (0) | 2021.08.07 |
[Python] self 이해 (0) | 2021.07.29 |
[Python] ID 함수 정리 (0) | 2021.07.26 |