zip 함수

함수 zip는 시퀀스(리스트, 튜플, 집합)의 요소들을 결합하는 이터레이터를 생성합니다. 이 함수는 첫 번째와 두 번째 시퀀스의 모든 요소들이 순서대로 함께 병합된 이터레이터를 반환합니다. 함수의 매개변수에는 우리가 관심 있는 모든 튜플, 리스트, 집합 등을 지정합니다.

구문

pythonzip(첫 번째 시퀀스, 두 번째 시퀀스 등)

예제

함수 zip를 사용하여 두 개의 원본 튜플을 기반으로 새로운 튜플을 만들어 봅시다:

pythontlp1 = ('a', 'b', 'c')
tlp2 = (1, 2, 3)

res = zip(tlp1, tlp2)
print(tuple(res))

코드 실행 결과:

python(('a', 1), ('b', 2), ('c', 3))

예제

이제 함수 zip를 사용하여 두 개의 리스트를 기반으로 새로운 튜플을 만들어 봅시다:

pythonlst1 = ['d', 'e', 'f']
lst2 = [4, 5, 6]

res = zip(lst1, lst2)
print(tuple(res))

코드 실행 결과:

python(('d', 4), ('e', 5), ('f', 6))

예제

두 개의 집합으로부터 튜플을 생성해 봅시다:

pythonst1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}

res = zip(st1, st2)
print(tuple(res))

코드 실행 결과:

python(('a', 'd'), ('c', 'e'), ('b', 'f'))

예제

이제 세 개의 집합으로부터 튜플을 생성해 봅시다:

pythonst1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
st3 = {1, 2, 3}

res = zip(st1, st2, st3)
print(tuple(res))

코드 실행 결과:

python(('c', 'f', 1), ('b', 'd', 2), ('a', 'e', 3))

예제

함수 zip를 사용하면 여러 객체를 동시에 순회할 수 있습니다. 예를 들어 세 개의 리스트를 순회해 봅시다:

pythonlst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = [7, 8, 9]

for el1, el2, el3 in zip(lst1, lst2, lst3):
  print(el1, el2, el3)

코드 실행 결과:

python1 4 7
2 5 8
3 6 9

함께 보기

  • 이터러블 객체를 필터링하는 함수 filter
  • 이터러블 객체를 순회하는 함수 map