【问题标题】:using lists in a for loop or while loop在 for 循环或 while 循环中使用列表
【发布时间】:2013-07-21 03:03:12
【问题描述】:

所以我对这两个循环有些不理解

如果我有一个名为 numbers 的列表

我可以使用 for 循环找到最大的数:

for number in numbers:

    if number > largest:

        largest = number

但为什么不:

 if number[index] > largest:

     largest = number[index]

工作?

而while循环正好相反,所以如果我想对一个列表做一些事情,例如

用另一个值替换一个值,number[index] 有效,而数字无效。

【问题讨论】:

  • 数字是值。列表名是数字,只能获取数组的索引。

标签: python list loops for-loop while-loop


【解决方案1】:

因为您已经浏览了列表中的每个元素,而不是实际的列表本身。因此,您不需要拥有索引并访问您已经循环使用的相同元素。

>>> for i in range(5):
...     print i
... 
0
1
2
3
4

看看i 不是列表,而只是列表中的一个单独元素?做number[index] 毫无意义:p

如果需要索引,可以使用enumerate:

>>> L = ['one', 'two', 'three']
>>> for i, j in enumerate(L):
...     print i, j, L[i]
... 
0 one one
1 two two
2 three three

至于 while 循环,嗯,这不是你会使用它的情况。使用 for 循环 ;)。

【讨论】:

    【解决方案2】:

    for number in numbers 将元素一一分配。所以number 这里是numbers 的一个元素。如果number 真的是一个数字。使用number[i] 会出错。这是 Python 的语法。但不适用于while。您必须使用索引来访问列表中的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2014-08-21
      • 2017-03-05
      • 1970-01-01
      • 2010-09-11
      相关资源
      最近更新 更多