개인공부/[Python] / / 2022. 3. 8. 00:09

[python] 파이썬 zip함수 사용법 정리 및 예시

안녕하세요 오늘은 파이썬 내장함수인 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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유