首頁 > 後端開發 > Python教學 > 如何迭代 Python 列表中的元素對或元素組?

如何迭代 Python 列表中的元素對或元素組?

Susan Sarandon
發布: 2024-12-15 21:20:13
原創
606 人瀏覽過

How Can I Iterate Over Pairs or Groups of Elements in a Python List?

迭代列表中的每兩個元素

在 Python 中,迭代列表通常涉及使用 for 循環或列表理解。但是,當您需要一起訪問每兩個元素時,標準方法可能不夠。

要迭代列表中的每對元素,可以使用pairwise()實現:

def pairwise(iterable):
    "s -> (s0, s1), (s2, s3), (s4, s5), ..."
    a = iter(iterable)
    return zip(a, a)

l = [1, 2, 3, 4, 5, 6]

for x, y in pairwise(l):
    print(f"{x} + {y} = {x + y}")
登入後複製

此函數迭代列表兩次,將每個元素與下一個元素配對。它產生類似於以下內容的輸出:

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11
登入後複製

對於更通用的解決方案,請考慮grouped() 函數,它允許您迭代n 個元素的群組:

def grouped(iterable, n):
    "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..."
    return zip(*[iter(iterable)] * n)

for x, y in grouped(l, 2):
    print(f"{x} + {y} = {x + y}")
登入後複製

此函數接受列表和群組大小作為參數,並傳回一個產生元素組的迭代器。例如,呼叫grouped([1, 2, 3, 4, 5, 6], 3) 將產生:

(1, 2, 3)
(4, 5, 6)
登入後複製

在Python 2 中,您可以使用出於相容性目的,izip 而不是zip

這些方法提供高效靈活的方式來迭代列表中的元素,讓您可以根據需要成對或成組地處理它們。

以上是如何迭代 Python 列表中的元素對或元素組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板