本人在用到列表时,常常犯空列表的用法错误,如:
list =[] #定义一个空列表
#想把新建的列表创建为8个元素且每个元素为0的列表
for i in range(8):
list[i] = 0
结果输出报错:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError: list assignment index out of range
报错说索引值超出了范围。这是肯定,因为我定义的列表list为空,是没有元素的,就算是list[0]也会报错。因此,想新建一个8个元素且每个元素为0的列表,应该按下面操作:
list = []
for i in range(8):
list.append(0)
print(list)
输出为:
list = [0,0,0,0,0,0,0,0]
再另外拓展一下:
list=[]和list=[0]的区别:
以上两个操作都是定义了一个列表,但前者是一个空列表,后者是含有一个元素的列表。
还要,想创建一个列表含有8个元素且均为0,其实有很多方法,如用numpy就很方便,如:
numpy.zeros([1,8])
但是,当你不确定建立的列表的维度时,一般先定义一个空列表,然后再用列表的子函数(append)添加元素。