Python:初始化列表和字典

Python:初始化列表和字典,python,Python,我是Python新手。初始化列表时 mylist = list() mylist[0]="hello" 给出错误。它只起作用 mylist.append("hello") 但如果我对字典也这么做的话 mydict ={} mydict["one"]="hello" 它起作用了。 为什么我不需要做 mydict['one'].append('hello') 为什么不同结构的情况不同。如果向字典添加元素,则连接到键。 在本例中,您将元素'hello'连接到您的键'one' 要向列表中添加元素

我是Python新手。初始化列表时

mylist = list()
mylist[0]="hello"
给出错误。它只起作用

mylist.append("hello")
但如果我对字典也这么做的话

mydict ={}
mydict["one"]="hello"
它起作用了。 为什么我不需要做

mydict['one'].append('hello')

为什么不同结构的情况不同。

如果向字典添加元素,则连接到键。 在本例中,您将元素
'hello'
连接到您的键
'one'

要向列表中添加元素,必须使用函数
list.append

您可以使用
list[x]
获取位置x处的元素。

如果您像这样更新dict:

d['c'] = 3
l[5] = 'a'
。。。该dict中不需要出现
d['a']
d['b']
(或任何项)。字典项的键并不表示dict对象的任何特定结构属性

但是,如果要更新如下列表:

d['c'] = 3
l[5] = 'a'
。。。索引0到5绝对必须存在。索引不仅用作列表中元素的句柄,还具有结构属性。如果
l[5]
确实存在,则可以绝对确定索引0到4也存在。你需要这种确定性

想象一下,您可以在一个空列表上执行
l[5]='a'
len(l)
会返回什么?1.6. 这两种情况都会导致失败:

for i in range(len(l)):
    print(l[i])

如果索引-1已经存在,或者如果列表为空且所需索引为0,则可以认为
l[]=“a”
可以隐式附加该值。为了使其可靠地工作,您需要确保在添加像这样的值之前存在index-1,而在使用append()时,您可以保证将您的值添加到列表中(内存不足等潜在的边缘情况除外)。

list()创建一个空列表,因此没有要访问的元素0。您可以创建具有如下初始值的列表:
mylist=['hello']
我的意思是,当创建列表时,它没有值,我们无法使用索引添加值。但当创建目录时,我们可以使用键向其添加值。我们不需要append方法。这是为什么so@Goyo
我的列表[0]
也不起作用,因为它是一个空列表,所以你不能为它编制索引。我真的不明白这方面的反对票,这是一个非常基本的问题,但仍然合法。