파이썬에서는 두 개의 리스트를 더하여 각 리스트의 요소들이 모두 포함된 새로운 리스트를 생성할 수 있습니다. 두 리스트를 더하는 방법은 여러 가지가 있으며, 아래에서 대표적인 세 가지 방법을 하나씩 살펴보겠습니다. 단, 어떤 방법을 사용하든 두 리스트의 길이가 동일해야 한다는 점에 유의해야 합니다.
1. append() 함수 활용하기
append() 메서드를 사용하면 반복문을 통해 두 리스트의 같은 인덱스에 있는 요소들을 하나씩 더해 새로운 리스트를 만들 수 있습니다. 가장 기본적이고 직관적인 방법입니다.
예제
List1 = [7, 5.7, 21, 18, 8/3]
List2 = [9, 15, 6.2, 1/3,11]
# 원본 리스트 출력
print ("list1 : " + str(List1))
print ("list2 : " + str(List2))
newList = []
for n in range(0, len(List1)):
newList.append(List1[n] + List2[n])
print(newList)위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
list1 : [7, 5.7, 21, 18, 2.6666666666666665] list2 : [9, 15, 6.2, 0.3333333333333333, 11] [16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]
2. map()과 add() 함수 활용하기
operator 모듈의 add() 함수를 map() 함수와 함께 사용하면 두 리스트의 요소를 간결하게 더할 수 있습니다. map() 함수는 첫 번째 매개변수로 add 함수를 받아, 두 리스트에서 같은 인덱스에 위치한 요소들을 서로 더한 결과를 반환합니다.
예제
from operator import add
# 리스트의 두 요소 더하기
List1 = [7, 5.7, 21, 18, 8/3]
List2 = [9, 15, 6.2, 1/3,11]
# 원본 리스트 출력
print ("list1 : " + str(List1))
print ("list2 : " + str(List2))
NewList = list(map(add,List1,List2))
print(NewList)위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
list1 : [7, 5.7, 21, 18, 2.6666666666666665] list2 : [9, 15, 6.2, 0.3333333333333333, 11] [16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]
3. zip()과 sum() 함수 활용하기
앞선 방법과 유사하게 zip()과 sum()을 리스트 컴프리헨션(for 루프)과 함께 사용할 수 있습니다. zip()으로 두 리스트의 같은 인덱스에 있는 요소들을 쌍으로 묶은 후, 각 쌍에 sum()을 적용하여 합계를 구합니다. 이 방법은 코드가 가장 짧고 파이썬다운(Pythonic) 스타일로 평가받습니다.
예제
# 리스트의 두 요소 더하기 List1 = [7, 5.7, 21, 18, 8/3] List2 = [9, 15, 6.2, 1/3,11] result = [sum(n) for n in zip(List1, List2)] print(result)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
[16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]