Python에서 두 리스트 동시에 순회하기
for문과 zip 함수 사용하기
for
문과 zip
함수를 사용하면 Python에서 두 개 이상의 리스트를 동시에 순회할 수 있습니다. zip
함수는 여러 개의 이터러블을 인자로 받아 동일한 인덱스를 가진 요소를 튜플로 묶은 이터러블을 생성합니다.
1
2
3
4
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for num, char in zip(list1, list2):
print(f"{num} and {char}")
위 코드를 실행하면, 다음과 같은 결과를 얻을 수 있습니다.
1
2
3
1 and a
2 and b
3 and c
enumerate와 zip 함께 사용하기
enumerate
함수를 zip
과 함께 사용하면, 순회하는 동안 인덱스 값도 얻을 수 있습니다. enumerate
함수는 이터러블을 인자로 받아 인덱스와 값을 포함하는 튜플을 반환합니다.
1
2
3
4
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for index, (num, char) in enumerate(zip(list1, list2)):
print(f"Index: {index}, Number: {num}, Character: {char}")
이 코드를 실행하면 다음과 같은 출력을 볼 수 있습니다.
1
2
3
Index: 0, Number: 1, Character: a
Index: 1, Number: 2, Character: b
Index: 2, Number: 3, Character: c
리스트의 길이가 다를 경우
zip
함수는 가장 짧은 리스트를 기준으로 순회를 종료합니다. 만약 두 리스트의 길이가 다르다면, itertools.zip_longest
를 사용하여 두 리스트를 동시에 순회할 수 있습니다. 이 함수는 itertools
라이브러리에 포함되어 있으며, 길이가 짧은 리스트에 None
을 채워 넣어 동일한 길이로 만들어 줍니다.
정리
Python에서 두 리스트를 동시에 순회하기 위해서는 zip
함수를 사용하는 것이 효율적입니다. enumerate
를 추가로 사용하면, 순회 중인 인덱스 정보도 쉽게 얻을 수 있습니다. 리스트의 길이가 다른 경우에는 itertools.zip_longest
를 사용하면 해결할 수 있습니다. 이러한 방법들을 알고 있으면, 여러 리스트를 동시에 쉽게 관리할 수 있습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.