【发布时间】:2022-01-11 16:59:57
【问题描述】:
我没有得到这个。为什么以下代码 sn-p 的输出为 [0,0,10,20,30]。
my_list=[0]*5
for i in range(1,5):
my_list[i]=(i-1)*10
print(my_list)
【问题讨论】:
我没有得到这个。为什么以下代码 sn-p 的输出为 [0,0,10,20,30]。
my_list=[0]*5
for i in range(1,5):
my_list[i]=(i-1)*10
print(my_list)
【问题讨论】:
在 python 中索引从 0 开始,这里你必须使用 range(0,5) 来考虑这一点:
my_list=[0]*5
for i in range(0,5):
my_list[i]=(i-1)*10
print(my_list)
正确填充你的向量。
【讨论】:
列表索引从零开始,范围的第二个参数是停止值(即不包括 5),因此您可以在脑海中(或在纸上)分解过程:
# my_list i (i-1)*10
my_list=[0]*5 # [0, 0, 0, 0, 0]
for i in range(1,5): # 1..4
my_list[i]=(i-1)*10 # [0,00, 0, 0, 0] 1 00
# [0, 0,10, 0, 0] 2 10
# [0, 0,10,20, 0] 3 20
# [0, 0,10,20,30] 4 30
print(my_list)
如果您希望获得 [0,10,20,30,40],您必须考虑从零开始的索引:
my_list = [0]*5
for i in range(5): # 0..4 range(5) is the same as range(0,5)
my_list[i] = i*10
【讨论】: