python defaultdict(list) IndexError: list assignment index out of range

python defaultdict(list) IndexError: list assignment index out of range

我正在尝试使用 defaultdict(list) 作为,

dict = defaultdict(list)
dict['A'][1] = [1]

dict['A'][1] = list([1])

我收到一个错误,

IndexError: list assignment index out of range

如果我这样做

dict['A'][1].append(1)

IndexError: list index out of range

我想知道这里有什么问题。

这里有一些问题:

  1. 您使用 1 作为索引值,而您的默认列表从索引 0 开始。

  2. 追加时,不需要指定索引。

  3. 最后,声明一个与内置类型同名的变量(dict,在这种情况下)不是一个好主意,因为这通常会导致意外稍后使用内置类型时的行为。

已修改,您的代码将是:

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d['A'].append(1)
>>> d['A']
[1]

首先,不要使用 dict 作为名称。使用 d 这样的东西,这样你就不会掩盖内置名称 dict.

其次,d['A'][1] = list([1]) 尝试访问空列表 的索引 1 (您初始化 defaultdict 的值)和分配给它,那是不行的。

您可能正在寻找:

d = defaultdict(list)
d['A'].append(1)