python-3.x - 为什么会这样打印
问题描述
迭代如何在以下代码段中发生?
a=[0,1,2,3]
b=[]
for a[-1] in a:
b.append(a[-1])
print(b)
Output is [0,1,2,2]
解决方案
Pythonfor
循环使用赋值,如果使用不当,可能会导致有趣的结果。
您的示例可以简化以更好地反映这一点。由于a[-1]
访问 中的最后一个元素a
,因此以下代码实际上会修改a
:
a = [0, 1]
for a[-1] in [9]:
pass
print(a)
输出
[0, 9]
推荐阅读
- python - 使用类进行减法时如何返回负分数?
- c++ - 条件变量自定义等待函数
- node.js - 用于具有不同角色的用户和配置文件的 MongoDB 方案
- devops - Lightstep - 预配置的仪表板
- python - Create a NER dictionary from a given text
- firebase - iOS Notification Images React-Native
- docker - Docker 错误:遇到致命错误。在“/App/”中找不到执行应用程序所需的库“libhostpolicy.so”
- xquery - 根据管道分隔符拆分字符串,但括号内的 () 除外
- javascript - 电容器javascript新文件字节显示而不是文件名
- python - openCV多边形检测