요소별 목록 추가: Python의 효율성
목록을 조작할 때 요소별 작업을 수행해야 하는 경우가 종종 발생합니다. 아래와 같이 두 목록의 요소를 위치적으로 추가하는 작업을 고려해 보세요.
list1 = [1, 2, 3] list2 = [4, 5, 6]
원하는 출력은 다음과 같습니다.
[1, 2, 3] + + + [4, 5, 6] || || || [5, 7, 9]
이 요소별 추가를 달성하려면 몇 가지 Pythonic 접근 방식이 존재합니다. :
방법 1: Operator.add 및 map
operator.add 모듈은 요소별 추가에 필요한 기능을 제공합니다. 맵 기능을 활용하면 두 목록을 동시에 반복하고 추가 작업을 적용할 수 있습니다.
from operator import add result = list(map(add, list1, list2))
방법 2: zip 및 목록 이해
zip 기능 목록의 요소를 튜플로 결합하여 목록 이해에서 추가로 조작할 수 있습니다. 이 접근 방식에는 튜플에서 값을 추출하고 합산하는 작업이 포함됩니다.
result = [sum(x) for x in zip(list1, list2)]
성능 고려 사항
방법 선택은 성능 요구 사항에 따라 달라질 수 있습니다. 다음 타이밍 비교는 map(add, list1, list2) 접근 방식이 큰 목록에 대해 가장 빠르다는 것을 나타냅니다. zip 기반 메서드는 추가 튜플 조작으로 인해 속도가 느려집니다.
예를 들어 각각 100,000개의 요소가 포함된 목록의 경우:
%timeit from operator import add;map(add, list1, list2) 10 loops, best of 3: 44.6 ms per loop %timeit from itertools import izip; [a + b for a, b in izip(list1, list2)] 10 loops, best of 3: 71 ms per loop %timeit [a + b for a, b in zip(list1, list2)] 10 loops, best of 3: 112 ms per loop
더 복잡한 작업의 경우 추가 메서드가 필요할 수 있습니다. 그러나 요소별 추가라는 간단한 작업의 경우 위에서 설명한 접근 방식이 가장 Python적이고 효율적인 솔루션을 제공합니다.
위 내용은 Python에서 요소별 목록 추가를 효율적으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!