列表推導式中的獨立迭代器
在 Python 中,列表推導式允許多個迭代循環。考慮以下範例:
<code class="python">[(x, y) for x in a for y in b]</code>
其中 a 和 b 是序列。此推導式根據 a 和 b 的笛卡爾積創建元素對。
迭代器可以互相依賴嗎?
列表推導式中的一個迭代器可以引用另一個迭代器嗎?答案是肯定的,下面的程式碼示範了這一點:
<code class="python">[x for x in a for a in b]</code>
在這個理解中,外循環迭代器 a 成為內循環的迭代器。這有效地展平了嵌套列表。
範例
如果我們有一個巢狀列表a:
<code class="python">a = [[1, 2], [3, 4]]</code>
以下列表推導式會將其展平到單一列表中:
<code class="python">[x for x in a for a in b]</code>
結果:
[1, 2, 3, 4]
使用生成器的替代解決方案
在提供的Python程式碼中,文字是儲存為句子,任務是提取單字清單。以下是使用生成器實現此目的的方法:
<code class="python">text = (("Hi", "Steve!"), ("What's", "up?")) gen = (word for sentence in text for word in sentence)</code>
gen 變數現在產生扁平化的單字清單:
<code class="python">for word in gen: print(word)</code>
輸出:
Hi Steve! What's up?
以上是列表推導式可以有依賴迭代器嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!