Python:for语句行为

标签 python syntax

我的问题是关于这个语句的输出:

for x in range(4), y in range(4):
    print x
    print y

结果:

[0, 1, 2, 3]
2
True
2

好像有比较,我就是想不通为什么输出是这样的。

最佳答案

我猜你是从交互式控制台运行它,并且已经定义了值为 2 的 y(否则,你会得到 NameError: name 'y'未定义)。这将导致您观察到的输出。

这是由于 for x in range(4), y in range(4): 在计算时实际上等同于以下内容:

for x in (range(4), y in range(4)):

减少到...

for x in ([0,1,2,3], 2 in range(4)):

再次减少到...

for x in ([0,1,2,3], True):

这将导致 for 循环的 2 次迭代,因为它遍历元组的每个元素:

  1. x = [0,1,2,3]
  2. x = True

(当然,y 仍然是 2。)

关于Python:for语句行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772264/

相关文章:

python - 如何在 PySpark/Python 中有效地将数组转换为字符串

python - 引发 RuntimeError ('You need to use the eventlet server. '

java - Scala如何一步实例化内部类?

mysql删除语法错误

c++ - int a[] = {1,2,};为什么允许在初始化列表中使用尾随逗号?

Python 生成创建表

python - 这种NumPy列表理解的捷径

Python:MQTT代理消息批量插入mysql数据库

scala - 带尖括号 (<>) 的方法

javascript - 在类似于 jQuery 的 vanilla JS 中实现每个