0

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

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

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

for number in numbers:

    if number > largest:

        largest = number

但为什么不:

 if number[index] > largest:

     largest = number[index]

工作?

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

用另一个值替换一个值,number[index]工作和数字不起作用。

4

2 回答 2

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 循环 ;)。

于 2013-07-22T11:37:38.870 回答
0

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

于 2013-07-22T11:39:45.223 回答