列表推導式中的獨立迭代器
在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