当你做这样的事情:
for i in range(5):
print i
Run Code Online (Sandbox Code Playgroud)
Python做什么?它首先使用[0,1,2,3,4]生成一个数组,然后遍历打印它的每个项目吗?相近:
for i in [0,1,2,3,4]:
print i
Run Code Online (Sandbox Code Playgroud)
或者是否在生成它们时打印每个数字?就像是:
生成0将0分配给i打印i
生成1 - >将1分配给i - >打印i
生成2 - >将2分配给i - >打印i
生成3 - >将3分配给i - >打印i
生成4 - >将4分配给i - >打印i
更新
我添加了Python 2.7的标签.我不认为我的问题是版本特定的,但它似乎是!
现在我正在使用Python 2.7,所以我的问题就是这个.但我发现将Python 2范围与Python 3范围进行比较的信息非常有价值.
在Python 2中,range()返回整个列表对象,然后迭代该列表对象for.
在Python 3中,它返回一个内存有效的iterable,它是一个自己的对象,具有专用的逻辑和方法,而不是列表.现在
for将得到该迭代生成的每个值.
在Python 2中xrange(),可以获得类似Python 3的
range()功能.Python 2的xrange介于Python 2的范围和Python 3的范围之间.它比前者好,但不如后者好.
最后,在Python 3中,如果你想要整个列表:
>>> list(range(...))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |