首頁 >後端開發 >Python教學 >如何有效地迭代 Python 列表中的重疊對?

如何有效地迭代 Python 列表中的重疊對?

Patricia Arquette
Patricia Arquette原創
2024-12-14 14:13:10563瀏覽

How Can I Efficiently Iterate Over Overlapping Pairs in Python Lists?

迭代重疊對的滑動視窗技術

在 Python 中使用列表時,通常需要迭代重疊的元素對。常見的方法是使用 zip 和 zip[1:] 建立兩個在列表上獨立前進的迭代器。然而,可能有更有效或更慣用的方法來達到相同的結果。

Itertools Pairwise Function

Python 3.8 引入了 itertools 模組中的pairwise 函數。該函數接受一個迭代器並傳回一個迭代器,該迭代器產生重疊的元素對。

對於 3.8 以下的 Python 版本,可以使用 tee 實作類似的函數:

def pairwise(iterable):
    "s -> (s0, s1), (s1, s2), (s2, s3), ..."
    a, b = itertools.tee(iterable)
    next(b, None)
    return zip(a, b)

優點Pairwise

pairwise 函數相對於傳統 zip有幾個優點方法:

  • 它只建立兩個迭代器,而 zip 方法則建立三個。
  • 它可以輕鬆地使用 tee 函數的 n 參數來產生任何大小的滑動視窗。
  • 它是內建函數,因此比自訂函數更有效率

結論

雖然傳統的zip 方法是有效的,但pairwise 函數提供了一種更有效率、更慣用的方式來迭代重疊的元素對。 Python。它對於創建資料滑動視窗以進行處理或分析特別有用。

以上是如何有效地迭代 Python 列表中的重疊對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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