」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 列表推導式可以有依賴迭代器嗎?

列表推導式可以有依賴迭代器嗎?

發佈於2024-12-21
瀏覽:193

 Can List Comprehensions Have Dependent Iterators?

列表推導式中的獨立迭代器

在Python中,列表推導式允許多個迭代循環。考慮以下範例:

[(x, y) for x in a for y in b]

其中 a 和 b 是序列。此推導式根據 a 和 b 的笛卡爾積創建元素對。

迭代器可以互相依賴嗎?

列表推導式中的一個迭代器可以引用另一個迭代器嗎?答案是肯定的,下面的程式碼示範了這一點:

[x for x in a for a in b]

在這個推導式中,外循環迭代器a變成了迭代器對於內循環。這有效地展平了嵌套列表。

範例

如果我們有一個嵌套列表a:

a = [[1, 2], [3, 4]]

以下列表理解會將其展平為單一列表:

[x for x in a for a in b]

結果:

[1, 2, 3, 4]

使用生成器的替代解決方案

在提供的Python程式碼中,文字儲存為句子,任務是提取單字清單。以下是使用生成器實現此目的的方法:

text = (("Hi", "Steve!"), ("What's", "up?"))
gen = (word for sentence in text for word in sentence)

gen 變數現在產生單字的扁平列表:

for word in gen:
    print(word)

輸出:

Hi
Steve!
What's
up?
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3