Python 中的壓縮清單:大小不符說明
嘗試將多個清單壓縮在一起時,可能會遇到有關結果列表大小的意外行為。本文解決了一個常見的誤解,並提供了對 zip() 在 Python 中如何運作的清晰理解。
最初,嘗試壓縮三個大小為 20 的清單的程式可能會預期得到大小為 3 的結果清單。然而,產生的 zipall 清單卻包含 20 個元素。出現這種差異是因為 zip() 不連接列表;相反,它會建立一個元組列表,每個元組包含原始列表中的對應元素。
考慮以下範例:
a = b = c = range(20) zipall = zip(a, b, c)
輸出 zipall 清單會有 20 個元素,每個元素element 是 (a_element, b_element, c_element)形式的元組:
[(0, 0, 0), (1, 1, 1), ... (17, 17, 17), (18, 18, 18), (19, 19, 19)]
因此,要確定每個元組中的元素數量,可以檢查以下任意元素的長度:
len(zipall[0])
這將返回長度3,表示每個元組包含三個元素。
請注意,如果原始清單為空,則 len(zipall) 表達式將傳回 0,因為空列表沒有任何可用於壓縮的元素。
以上是為什麼 Python 中的壓縮列表會產生元組列表,而不是串聯列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!