我正在学习列表,并尝试创建列表并向其中添加数据。
mylist=[]
mylist[0]="hello"
这会产生错误。
为什么我们不能像在javascript中那样将成员添加到这样的列表中。 由于这些也是动态的,因此我们可以向其中添加任意数量的成员和任何数据类型。
在javascript中有效:
var ar=[];
ar[0]=333;
为什么这在Python中起作用,而我们只使用append()添加到列表中。
答案 0 :(得分:1)
mylist[0] = 'hello'
是mylist.__setitem__(0, 'hello')
的语法糖。
根据object.__setitem__(self, key, value)
的{{3}}:
对于不正确的键值,应引发与相同的例外。
__getitem__()
方法。
__getitem__
的{{3}}具体说明了导致IndexError
的原因:
如果该序列的索引集之外的值(任何 负值的特殊解释),
IndexError
应该是 提出。
关于此设计决定的目的,可以写几章来解释为什么list
是以此方式设计的。在判断其效用之前,您应该熟悉Python列表索引和切片。
答案 1 :(得分:0)
Python中的列表与C之类的语言的数组本质上是不同的。您不会创建固定大小的列表,也不会在其中分配元素给索引。相反,您可以创建一个空列表并向其中添加元素,或者使用列表理解从一种表达式类型生成列表。
在您的情况下,您想添加到末尾,因此必须使用.append
方法:
mylist.append('hello')
#["hello"]
还有一个列表理解的例子:
squares = [x**2 for x in range(10)]
#[1,4,9,16,25,36,49,64,81,100]