列表的按元素添加:Pythonic 方法
按元素添加兩個列表可以在Python 中使用多個內置函數輕鬆執行在函數中。以下是如何在不進行繁瑣迭代的情況下實現此目的的方法:
將map() 與operator.add 結合使用:
from operator import add result = list(map(add, list1, list2))
map () 函數將add 函數套用於每個list1 和list2 中對應的元素,傳回結果清單。
或者,使用帶有列表理解的 zip():
result = [sum(x) for x in zip(list1, list2)]
zip() 函數將 list1 和 list2 中的元素配對成元組序列。然後列表推導式計算每個元組的總和,產生逐元素加法。
效能比較:
為了比較這些方法的效率,我們進行了計時在大型清單(100,000 個元素)上進行測試:
>>> from itertools import izip >>> list2 = [4, 5, 6] * 10 ** 5 >>> list1 = [1, 2, 3] * 10 ** 5 >>> %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 >>> %timeit from itertools import izip; [sum(x) for x in izip(list1, list2)] 1 loops, best of 3: 139 ms per loop >>> %timeit [sum(x) for x in zip(list1, list2)] 1 loops, best of 3: 177 ms per loop
如這些結果所示, map() 使用operator.add的方法對於大型清單來說是最快的。
以上是在 Python 中執行清單按元素添加的最有效方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!