迭代列表中的每兩個元素
在 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中文網其他相關文章!