【问题标题】:Is there a way to use loop iteration variables in an area outside the loop?有没有办法在循环外的区域使用循环迭代变量?
【发布时间】:2022-11-30 06:16:25
【问题描述】:

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

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 的新手,所以我不是很了解,因此我问了。我该如何解决这个问题?

【问题讨论】:

  • print(list[i])
  • @flakes 我提供的示例修改了变量。真实情况是有很多不同的列表可供参考。我认为该解决方案仅适用于提供的场景?
  • 您似乎认为更改i 的值将更改存储在list[0] 的值。 listi没有关系; i 仅用作表达产生要放入列表中的值。
  • 那是对的。我怎样才能使价值发生变化?我是否必须在循环内不断地重新声明变量?

标签: python


【解决方案1】:

在循环的每次迭代中,您访问索引0 处的相同元素。 要通过索引获取列表中的每个单独元素,您已将其设置为i

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

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

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 2011-02-27
    • 1970-01-01
    • 2022-11-17
    • 2010-12-01
    • 1970-01-01
    • 2016-03-13
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多