python - 以下简单 Python 列表程序的奇怪输出
问题描述
看到以下 Python 程序的输出后,我有点困惑:
a = [0,1,2,3]
for a[-1] in a:
print(a[-1])
输出:
0
1
2
2
在这里,我采用了一个列表[0,1,2,3]
,它给出了output: 0 1 2 2
但我预计输出将是3 3 3 3
因为 a[-1] 访问列表中的数字 3。请有人帮我清除我的疑问。
解决方案
对于每个条目,您正在分配a[-1]
最后一个条目的值并打印它。当您到达最后一个条目时,它具有倒数第二个条目的值,因此 2 出现两次。
因此,您首先将值设置a[3]
为0
并输出,然后将值设置a[3]
为 1 并输出,等等。
您可以通过在循环完成后打印列表来验证这一点:
>>> a
[0, 1, 2, 2]
推荐阅读
- javascript - 无法使用 webpack 通过 github 页面发布应用程序,为什么?
- r - 我可以将使用 ggdendro 绘制的 data.tree 的分支居中吗?
- r - 使用 ggplot2 和 tsibble 更改标签和中断
- sql - 打印两列中具有最大组合的行(oracle)
- vue.js - 提供 Inject 在 vue 3 组合 API 中无法正常工作
- linux - 如何使用 sSMTP 使用 ntlm 身份验证?
- elasticsearch - 如何从 Elasticssearch 中的字段中查询所有内容
- node.js - 尝试放入“node index.js”时出现错误“找不到模块”
- html - 如何创建从视口左侧到引导列内元素末尾的线
- node.js - 如何记录 WDIO 测试套件中的所有内容(包括钩子之前和之后)