列表推导式中的独立迭代器
在 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中文网其他相关文章!