두 개의 리스트를 동시에 순회(iteration)하는 방법은 zip() 을 통해서 가능합니다. 튜플(tuple)이나 딕셔너리(dictionary)등의 iterable이면 무엇이든 zip()으로 사용할 수 있습니다.
one = [1, 2, 3]
two = [4, 5, 6]
for i, j in zip(one, two):
print(i, j)
# 1 4
# 2 5
# 3 6
만약 리스트의 크기가 다르다면 갯수가 적은 리스트만큼만 순회(iteration)를 하게 됩니다.
one = [1, 2]
two = [4, 5, 6, 7]
for i, j in zip(one, two):
print(i, j)
# 1 4
# 2 5
zip() 안에 들어가는 인자를 섞어서 사용할 수 도 있습니다. 아래 예제에선 리스트와 튜플을 섞어서 사용하였습니다.
one = [1, 2, 3]
two = (4, 5, 6)
for i, j in zip(one, two):
print(i, j)
# 1 4
# 2 5
# 3 6
물론 딕셔너리와 같이 사용할 수 도 있습니다.
one = [1, 2, 3]
two = {'d':4, 'e':5, 'f':6}
for i, j in zip(one, two):
print(i, j)
# 1 d
# 2 e
# 3 f
위에서 확인 했듯이, 딕셔너리를 순회 zip()에서 사용하면 키(key) 만 순회가 됩니다.
one = {'a':1, 'b':2, 'c':3}
two = {'d':4, 'e':5, 'f':6}
for i, j in zip(one, two):
print(i, j)
# a d
# b e
# c f
만약 값을 순회하고 싶다면 아래와 같이 values() 함수를 사용해서 값(value)들을 리스트로 가져와서 zip()에 넣어주어야 합니다.
one = {'a':1, 'b':2, 'c':3}
two = {'d':4, 'e':5, 'f':6}
for i, j in zip(one.values(), two.values()):
print(i, j)
# 1 4
# 2 5
# 3 6
'파이썬 > 자주하는 질문' 카테고리의 다른 글
파이썬(Python) 배열(Array) 생성하기 (0) | 2020.09.18 |
---|---|
파이썬(Python) if else 구문을 한 줄로 표현하기 (0) | 2020.09.15 |
파이썬(Python) 딕셔너리 값(value)로 정렬하기 (0) | 2020.09.13 |
파이썬(Python) *args **kwargs 는 무엇일까? (0) | 2020.09.12 |
파이썬(Python) 외부 프로그램 실행하기 (0) | 2020.09.11 |
댓글