我正在创建一个列表,然后访问这样的元素:
list = []
list.insert(42, "foo")
list.insert(43, "bar")
list.insert(44, "baz")
print(list[43])
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
print(list [43])IndexError:列表索引超出范围
怎么了 ?我是否必须使用字典来执行此操作?
列表中没有"键",只有索引.
您的代码无法按预期方式工作的原因是,list.insert(index, obj)当index列表结束时,不会使用"空白"条目填充列表; 它只是附加obj到列表中.
您可以使用字典:
In [14]: d = {}
In [15]: d[42] = "foo"
In [16]: d[43] = "bar"
In [17]: d[44] = "baz"
In [18]: print(d[43])
bar
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用足够多的条目预先初始化列表:
In [19]: l = [None] * 50
In [20]: l[42] = "foo"
In [21]: l[43] = "bar"
In [22]: l[44] = "bar"
In [23]: print(l[43])
bar
Run Code Online (Sandbox Code Playgroud)
PS我建议您不要调用变量,list因为它会影响list()内置变量.