Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 두 리스트의 요소를 인덱스별로 짝지어 매칭하는 방법

파이썬으로 데이터를 다루다 보면 두 개의 리스트를 합치면서 각 요소를 인덱스 기준으로 쌍(pair)으로 연결해야 하는 경우가 종종 있습니다. 예를 들어 첫 번째 리스트의 0번째 요소를 두 번째 리스트의 0번째 요소와 연결하고, 그다음 인덱스도 같은 방식으로 이어가는 작업입니다.

이 글에서는 이러한 매칭 작업을 수행하는 두 가지 방법을 소개합니다.

1. tuple 함수 활용하기

tuple 함수를 사용하면 각 리스트의 요소를 순서대로 가져와 서로 맞춰줄 수 있습니다. 먼저 출력될 결과의 형식(패턴)을 담은 임시 문자열을 만들고, 여기에 두 리스트를 차례로 적용하는 방식입니다.

예제 코드

listA = ['day1', 'day2', 'day3']
listB = ['Mon', 'Tue', 'Fri']

# 주어진 리스트
print("Given list A is : " ,listA)
print("Given list B is : " ,listB)


# 리스트 요소 매칭
temp = len(listA) * '% s = %% s, '
res = temp % tuple(listA) % tuple(listB)

# 결과 출력
print("Paired lists : " , res)

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

Given list A is : ['day1', 'day2', 'day3']
Given list B is : ['Mon', 'Tue', 'Fri']
Paired lists : day1 = Mon, day2 = Tue, day3 = Fri,

2. join과 zip 함수 활용하기

zip 함수는 여러 리스트의 요소를 순서대로 묶어주는 역할을 하며, join 함수는 묶인 쌍들에 원하는 출력 패턴을 적용합니다. 이 방식이 코드도 더 간결하고 파이썬다운(Pythonic) 방법으로 널리 권장됩니다.

예제 코드

listA = ['day1', 'day2', 'day3']
listB = ['Mon', 'Tue', 'Fri']

# 주어진 리스트
print("Given list A is : " ,listA)
print("Given list B is : " ,listB)


# 리스트 요소 매칭
res= ', '.join('% s = % s' % i for i in zip(listA, listB))

# 결과 출력
print("Paired lists : " , res)

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

Given list A is : ['day1', 'day2', 'day3']
Given list B is : ['Mon', 'Tue', 'Fri']
Paired lists : day1 = Mon, day2 = Tue, day3 = Fri

정리

두 방법 모두 동일한 결과를 얻을 수 있지만, zipjoin을 조합한 두 번째 방법이 가독성이 좋고 유지보수하기 쉬워 실무에서 더 많이 사용됩니다. 참고로 두 리스트의 길이가 다르면 zip은 더 짧은 리스트를 기준으로 매칭되므로, 길이가 다른 리스트를 다룰 때는 itertools.zip_longest 사용을 고려해 볼 수 있습니다.