一尘不染

如何索引字典?

python

我在下面有一个字典:

colors = {
    "blue" : "5",
    "red" : "6",
    "yellow" : "8",
}

如何索引字典中的第一个条目?

colors[0]``KeyError由于明显的原因将返回。


阅读 279

收藏
2021-01-20

共1个答案

一尘不染

在Python版本(包括Python
3.6)及更高版本中,字典是无序的。如果您不关心条目的顺序,并且仍然想通过索引访问键或值,则可以使用d.keys()[i]d.values()[i]d.items()[i]。(请注意,这些方法会创建Python
2.x中所有键,值或项的列表。因此,如果需要一次以上,请将列表存储在变量中以提高性能。)

如果您确实关心条目的顺序,那么可以从Python
2.7开始使用collections.OrderedDict。或使用成对清单

l = [("blue", "5"), ("red", "6"), ("yellow", "8")]

如果您不需要通过密钥访问。(为什么您的数字是字符串?)

在Python 3.7中,常规字典是有序的,因此您不再需要使用它OrderedDict(但您仍然可以使用-它基本上是相同的类型)。Python
3.6的CPython实现已经包含了这一更改,但是由于它不是语言规范的一部分,因此您不能在Python 3.6中依赖它。

2021-01-20