안녕하세요 오늘은 파이썬 내장함수인 zip함수를 정리해보려 합니다.
zip함수 설명
zip(iterable한 객체1, 객체2, 객체3...)
zip함수의 모양은 위와 같습니다.
인자로 반복가능한 객체가 오고, 이 객체들의 데이터 값을 인덱스 별로 묶어서 반환해줍니다.
만약 다른 길이의 객체를 zip 함수에 사용하게 된다면, 길이가 더 짧은 객체에 맞춰지고 나머지 인덱스는 제외됩니다.
zip함수 사용 예제
1
2
3
4
5
6
7
8
9
10
|
#예제1
a=[1,2,3]
b=[4,5,6]
for pair in zip(a,b): #튜플로 묵어서 반환
print(pair)
for x,y in zip(a,b): #튜플을 바로 x,y에 담아서 사용 가능
print(x,y)
|
cs |

첫번째 for문을 보면 a와 b 리스트의
0번째 인덱스 -> (1,4)
1번째 인덱스 -> (2,5)
2번째 인덱스 -> (3,6)
이렇게 튜플의 형태로 반환하는것을 확인할 수 있습니다.
즉 두번째 for문 처럼 x,y 변수로 받아서 사용이 가능합니다.
1
2
3
4
5
6
7
8
9
10
|
#예제2
a=(1,2,3)
b=(4,5,6)
for pair in zip(a,b): #튜플 zip
print(pair)
a={1:'a',2:'b',3:'c'}
b={4:'a',5:'b',6:'c'}
for pair in zip(a,b): #딕셔너리 zip
print(pair)
|
cs |

zip함수는 iterable한 객체를 인자로 전달 가능하다고 했습니다.
즉 list말고도 tuple, dictionary도 인자로 전달이 가능합니다.
결과는 tuple로 동일하게 반환됩니다.
1
2
3
4
5
|
#예제3
a=[1,2,3]
b=[4,5,6,7] #길이가 다른 두객체
for pair in zip(a,b):
print(pair)
|
cs |

길이가 다른 두 객체를 인자로 넘기면 어떻게 될까 궁금해서 넣어봤습니다.
에러가 발생할 줄 알았는데 알아서 길이가 짧은 객체에 맞춰서 for문이 반복됩니다.
적용해볼만한 문제
https://programmers.co.kr/learn/courses/30/lessons/70128
코딩테스트 연습 - 내적
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의
programmers.co.kr
간단한 문제지만 zip함수를 사용해볼 수 있는 예제를 첨부해봤습니다.
'개인공부 > [Python]' 카테고리의 다른 글
[파이썬] map함수 사용법 (0) | 2022.10.22 |
---|