我希望这段代码引用一个内部带有循环变量的列表,而不是使用初始化值:
i = 1
list = [i,i+1,i+2]
for i in range(3):
print(list[0])
我期望的输出是:
0
1
2
输出是:
1
1
1
我已经尝试过
i = None
,但(当然)出现了错误。
我尝试在循环内使用占位符来引用:
x = 1
list = [x,x+1,x+2]
for i in range(3):
x = i
print(list[0])
我是Python新手,所以我不太了解,所以我才问。我该如何解决这个问题?
在循环的每次迭代中,您都会访问索引
0
处的相同元素。
要按索引获取列表中的每个单独元素,您已将其设置为 i
:
x = 1
lst = [x,x+1,x+2]
for i in range(3):
print(lst[i])
我将
list
更改为 lst
,因为前者是保留关键字,不应该用作变量名。
解决方案就像在循环中重新定义列表一样简单。
i = 1
lst = [i,i+1,i+2]
for i in range(3):
lst = [i,i+1,i+2]
print(list[0])
这并不完全是我所希望的,但我会凑合的。感谢您的帮助!