python中这两行代码的区别是什么?
for _ in range(i+1):
和
for _ in [0]*(i+1):
答案 0 :(得分:1)
range(i+1)
创建了一个类range
的对象,而[0]*(i+1)
创建了一个i+1
元素列表。 range
对象将生成i+1
个元素的迭代,但不占用它们的内存空间。
在_
上方使用range
变量将生成从0
到i
的项目,而第二个代码块仅生成0
值列表。
答案 1 :(得分:0)
第一行将创建一个range
对象,第二行将创建一个list
对象。例如
>>> i = 5
>>> print(range(i+1))
range(0, 6)
>>> print([0]*(i+1))
[0, 0, 0, 0, 0, 0]
并迭代它们会产生
>>> for _ in range(i+1):
... print(_)
...
0
1
2
3
4
5
>>> for _ in [0]*(i+1):
... print(_)
...
0
0
0
0
0
0