39
|
inspectorG4dget Dillon Benson · 技术社区 · 14 年前 |
![]() |
1
39
您需要使用一些括号:
这是因为以前的列表理解将i变量泄漏到封闭范围中,并成为当前范围的i。尝试启动一个新的python解释器,这将由于名称错误而失败。在python 3中,计数器的泄漏行为已被删除。 编辑: 等效for循环:
将是:
它还提供了一个名称错误。 编辑2: 带圆括号的版本:
相当于:
|
![]() |
2
7
Lie Ryan的for Loop等价物将我引向以下方面,这看起来确实很好:
输出
|
![]() |
3
7
稍微扩展一下Lie Ryan的答案: 某物=(x代表x在范围(10)内,如果x%2==i代表i在范围(2)内) 相当于:
而带括号的版本相当于:
这确实产生了两个发电机:
不幸的是,它产生的发电机有些不稳定,因为输出将取决于您如何消耗它们:
我的建议是完整地写出生成器函数:我想尝试在
|
![]() |
4
3
谎言有句法问题的答案。建议:不要把太多东西塞进发电机的体内。函数的可读性要高得多。
|
![]() |
A.E · python中具有多个if语句的列表理解 2 年前 |
![]() |
Aaryan · Python列表:如果没有前缀,则添加前缀 2 年前 |
![]() |
Semisonic · 如何在列表理解中添加额外的中间步骤? 2 年前 |
![]() |
Sun Jar · 用Python填写大小不均的列表 2 年前 |
![]() |
Shuvashish Roy · 将字典列表展平为数据帧列 2 年前 |
![]() |
MarkS · 列中列表中元素的值计数 2 年前 |