小编Mri*_*ddo的帖子

为什么逗号分隔的iterables for for不能像zip那样工作?

我想了解的是为什么以下代码

for x, y in [1,2], [3,4]:
    print(x, y, x + y)
Run Code Online (Sandbox Code Playgroud)

版画

1 2 3
3 4 7
Run Code Online (Sandbox Code Playgroud)

代替

1 3 4
2 4 6
Run Code Online (Sandbox Code Playgroud)

现在,我知道zip可以完成这项工作并且不使用zip来迭代一对列表可以被认为是反模式,但我仍然需要对此默认行为进行解释.

从我的角度来看,上面的代码应该像内置的zip函数一样直观地工作

for (x, y) in zip([1,2], [3,4]):
    print(x, y, x + y)
Run Code Online (Sandbox Code Playgroud)

打印

1 3 4
2 4 6
Run Code Online (Sandbox Code Playgroud)

从记忆中我记得很久以前就看过这种技术的解释了(我猜这就是为什么首先想到这个解决方案),但我现在已经完成了搜索,包括整篇Python 3文档的第5部分,但我无法做到找不到这种行为的任何解释,甚至在第5.6节也没有.(循环技术).

这是第四次陷入困境吗?

python python-3.x iterable-unpacking

1
推荐指数
1
解决办法
69
查看次数

标签 统计

iterable-unpacking ×1

python ×1

python-3.x ×1