在Python 中使用可迭代物件展平淺列表
在Python 中,展平淺列表(其中每個元素本身就是列表一個可迭代物件)可能會帶來挑戰。本文探討了有效扁平化此類清單的多種方法,優先考慮效能和程式碼清晰度。
方法:
列表理解
嘗試使用嵌套列表理解可能會引發由於嵌套循環中未定義的變數而導致的名稱錯誤:
使用Lambda 函數進行歸約:
使用lambda函數進行歸約可以提供簡單的解決方案:
但是,這種方法的可讀性可能會受到影響由於使用了list(x)。
Itertools.chain()
Itertools.chain()提供了一個高效且優雅的方法展平淺列表。它將迭代無縫連接成單一迭代:
這種方法避免了冗餘副本,並提供了可比較的效能來減少。
Itertools.chain.from_iterable ()
為了提高清晰度,請考慮使用itertools.chain.from_iterable():
這明確地表達了扁平化,而不使用運算符魔術。
結論:
Itertools.chain() 及其變體提供了有效且可讀的方法扁平化淺表,優先列表考慮效能和程式碼清晰度。選擇方法時請考慮具體的用例和可讀性偏好。
以上是如何在 Python 中有效地展平淺列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!