有没有办法在循环之外的区域使用循环迭代变量?

问题描述 投票:0回答:2

我希望这段代码引用一个内部带有循环变量的列表,而不是使用初始化值:

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新手,所以我不太了解,所以我才问。我该如何解决这个问题?

python
2个回答
1
投票

在循环的每次迭代中,您都会访问索引

0
处的相同元素。 要按索引获取列表中的每个单独元素,您已将其设置为
i
:

x = 1
lst = [x,x+1,x+2]
for i in range(3):
  print(lst[i])

我将

list
更改为
lst
,因为前者是保留关键字,不应该用作变量名。


0
投票

解决方案就像在循环中重新定义列表一样简单。

i = 1
lst = [i,i+1,i+2]
for i in range(3):
  lst = [i,i+1,i+2]
  print(list[0])

这并不完全是我所希望的,但我会凑合的。感谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.