首頁  >  文章  >  後端開發  >  在 Python 中執行清單按元素添加的最有效方法是什麼?

在 Python 中執行清單按元素添加的最有效方法是什麼?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-26 16:00:12635瀏覽

What's the Most Efficient Way to Perform Element-Wise Addition of Lists in Python?

列表的按元素添加: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn