【发布时间】:2014-12-25 03:26:19
【问题描述】:
在 for 循环 for item in lists 中,item 是否像 for i in range() 循环一样代表当前索引?
【问题讨论】:
标签: python python-2.7 for-loop
在 for 循环 for item in lists 中,item 是否像 for i in range() 循环一样代表当前索引?
【问题讨论】:
标签: python python-2.7 for-loop
Python 中的
for语句与您在 C 或 Pascal 中可能使用的语句有些不同。 Python 的 for 语句不是总是迭代数字的算术级数(如在 Pascal 中),或者让用户能够定义迭代步骤和停止条件(如 C),Python 的 for 语句迭代任何序列的项目(一个列表或一个字符串),按照它们在序列中出现的顺序。例如(没有双关语):>>> # Measure some strings: ... words = ['cat', 'window', 'defenestrate'] >>> for w in words: ... print w, len(w) ... cat 3 window 6 defenestrate 12
在您的情况下,当您使用range 时,item 代表range 返回的数字列表中的各个项目。
【讨论】:
使用语法for a in b...,a 总是分配给b 中的每个项目。因此,for i in range(x) 中的i 仅分配给range(x) 生成的列表中的每个项目。
>>> for i in range(5):
... print i
...
0
1
2
3
4
>>> range(5)
[0, 1, 2, 3, 4]
>>> for item in [0, 1, 2, 3, 4]:
... print item
...
0
1
2
3
4
>>>
item 代表列表中的每一项。【讨论】:
for item in list item 代表列表中的每个项目,而for i in range i 代表索引?这是否使i in range 有资格被修改(例如list[i] += 1),而for item in list? 是不可能的
for i in range 中,i 表示由range(x) 生成的列表 中的每个项目。
英文就像for every item in list。其他一些语言使用for each 来显示这一点。
【讨论】: