如何解决与以下python列表的输出混淆
自从我看到这段代码以来,我就感到困惑。
a=[0,1,2,3]
for a[-1] in a:
print(a[-1])
因此,根据代码,a [-1]应该是最后一个元素,即3,因此代码应根据我的要求输出以下输出:
3
2
1
0
但是我得到的输出如下:
0
1
2
2
任何人都可以通过逐步迭代来帮助执行以下代码。
解决方法
要了解您的代码的作用,首先,让我们看一下下面的代码的作用:
a = [0,1,2,3]
for item in a:
print(item)
此代码可以转换为以下基于索引的for循环:
for i in range(len(a)):
item = a[i]
print(item)
上述摘要的输出
0
1
2
3
在上面的代码中,您将按顺序从左到右依次遍历列表 a ,并将每个值分配给变量 item 。然后,您将打印该项目变量。
现在,进入代码的工作,让我们将其转换为基于索引的循环
for i in range(len(a)):
a[-1] = a[i] # See,how you are re-assigning the last element of list
print(a[-1])
在每次迭代中, i , a [i] 和 a 的值如下:
first iteration,i =0,a[i] = 0,a = [0,0],output of a[-1] = 0
second iteration,i = 1,a[i] = 1,1],output of a[-1] = 1
third iteration,i = 2,a[i] = 2,2],output of a[-1] = 2
final iteration,i = 3,output of a[-1] = 2
这就是您看到输出为0、1、2、2的原因
如果要以相反的顺序打印数组,则不应将值分配给数组的最后一个元素,请按如下所示修改代码
for item in a[::-1]
print (item)
这里[[::-1]反转数组,然后使用范围变量项迭代反转数组。
, for 循环中的a[-1]
在每次迭代时重置最后一个元素。
如果您要撤消列表,则应尝试a[::-1]
,因此,根据您的要求,
a = [0,3]
for item in a[::-1]:
print(item)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。