본문 바로가기

Python

zip # python 여러 list, set 등을 묶어서 for loop 돌기

728x90
반응형

python의 zip은 여러 list를 같은 index 순서대로 묶어서 for문을 돌릴 수 있습니다.

a = [1,2,3,4]
b = ['a', 'b', 'c', 'd']
c = ['가', '나', '다', '라']

for A, B, C in zip(a,b,c):
    print(A, B, C)

결과값

1 a 가
2 b 나
3 c 다
4 d 라

 

 

list의 길이가 다를 경우는 짧은 순서에 맞게만 짝지어 집니다. 

a = [1,2,3,4]
b = ['a', 'b', 'c', 'd']
c = ['가', '나', '다', '라', '마']
for A, B, C in zip(a,b,c):
    print(A, B, C)

결과값

1 a 가
2 b 나
3 c 다
4 d 라

 

 

list의 길이가 다를 경우 처음부터 실행이 되지 않도록 하는 조건을 걸 수 있습니다.

-> zip(..., stric=True)

(python 3.10 버전부터 도입된 기능)

a = [1,2,3,4]
b = ['a', 'b', 'c', 'd']
c = ['가', '나', '다', '라', '마']
for A, B, C in zip(a,b,c, strict=True):
    print(A, B, C)

결과값

ValueError: zip() argument 3 is longer than arguments 1-2

 

 

* list(zip(a,b,c)) 를 출력해보면 index에 맞게 짝지어진 tuple 형태로 담기는 것을 확인이 가능

728x90
반응형