Python/Python 정리

[Python] zip() 이해

우준세 2022. 4. 28. 17:33
728x90
반응형

이번 포스팅은 파이썬을 사용하면서 알게 된 파이썬의 내장 함수 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() 함수는 파이썬을 사용할 때 조금 더 파이썬스럽게 만들어주는 함수가 아닐까 생각합니다. 

 

다음 포스팅으로 찾아오겠습니다 :)

728x90
반응형