为python词典/列表中的非现有键/索引赋值

时间:2014-02-05 11:07:37

标签: python

为什么我们可以通过直接分配键值对而不是执行相同的列表来向字典中添加新元素: -

例如:

dictl = {}
dictl['new_key'] = value
print dictl  # prints {'new_key: value}

但是,

listl = []
listl[0] = value   # IndexError: list assignment index out of range

2 个答案:

答案 0 :(得分:2)

  1. 他们有不同的内部表示和用例。

  2. 扩展列表并不是一项简单的操作,因此不应该如此 隐晦地完成了。

  3. 您会对扩展列表中未使用的索引放置什么?

  4. 自添加新键/值以来,词典不会受此影响 对没有其他副作用。

答案 1 :(得分:0)

我能够使用 list.inssert(index, item) 实现更新不存在的索引的目标。 但是,请注意,如果要插入的索引大于 len(list) - 1 ,则该项目将被附加到列表中。例如

 list = []
 list[0] = 5 #indexError, but
 list.insert(0, 5) # works => list = [5]

索引> len(list) - 1

 list = [1, 3]
 list.insert(4, 8) # => [1, 3,