范围(i + 1)和[0]之间的差异*(i + 1)

时间:2018-05-03 12:05:06

标签: python python-3.x

python中这两行代码的区别是什么?

for _ in range(i+1):

for _ in [0]*(i+1):

2 个答案:

答案 0 :(得分:1)

range(i+1)创建了一个类range的对象,而[0]*(i+1)创建了一个i+1元素列表。 range对象将生成i+1个元素的迭代,但不占用它们的内存空间。

_上方使用range变量将生成从0i的项目,而第二个代码块仅生成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