”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 列表推导式可以有依赖迭代器吗?

列表推导式可以有依赖迭代器吗?

发布于2024-12-21
浏览:995

 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