展平列表理解結果
使用列表理解時,經常會遇到嵌套列表作為輸出,尤其是在使用返回列表的函數時。要將這些嵌套列表轉換為平面結果,請考慮實作以下技術:
列表推導式中的巢狀迭代
Python 的列表推導式支援嵌套循環。這允許您迭代多個集合並展平結果。例如,以下嵌套列表推導式將目錄列表轉換為子目錄的平面列表:
<code class="python">dirs = ['dir1', 'dir2', 'dir3'] filenames = [filename for path in dirs for filename in os.listdir(path)]</code>
此推導式迭代目錄,存取每個目錄路徑。在內部循環中,它使用 os.listdir 來檢索該目錄中的檔案名稱。產生的清單包含所有子目錄。
連結列表推導式
或者,您可以連結多個列表推導式以實現扁平化。當您要套用多個轉換時,此方法適用:
<code class="python">directories = ['dir1', 'dir2', 'dir3'] filenames = [filename for path in directories if os.path.isdir(path) for filename in os.listdir(path)]</code>
在此範例中,我們首先從目錄中過濾掉非目錄(使用 if 子句)。然後,我們應用與上一個範例相同的 os.listdir 操作。連結這些推導式會展平結果。
透過使用巢狀迭代或連結推導式,您可以有效地展平嵌套列表推導式結果,從而提供一種簡化程式碼並保持可讀性的便捷方法。
以上是如何在 Python 中展平嵌套列表推導結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!