如何索引到字典?

我有一个字典如下:

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

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

由于显而易见的原因, colors[0]将返回一个KeyError

字典在Python中是无序的。 如果您不关心条目的顺序,并且想要通过索引访问键或值,则可以使用d.keys()[i]d.values()[i]d.items()[i] 。 (请注意,这些方法分别创build所有键,值或项目的列表,因此,如果您多次需要它们,请将列表存储在variables中以提高性能。

如果你关心条目的顺序,从Python 2.7开始,你可以使用collections.OrderedDict 。 或者使用成对的列表

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

如果你不需要通过密钥访问。 (为什么你的数字string?)

如果有人仍然在看这个问题,目前接受的答案是不正确的:

从Python 3.6开始,字典是保持顺序的 ,也就是说,现在它们的行为与collections.OrderedDict完全一样。 不幸的是,到目前为止还没有专门的方法来索引字典的keys() / values() ,所以得到字典中的第一个键/值可以做为

 first_key = list(colors.keys())[0] first_val = list(colors.values())[0] 

或者(这避免了将键视图实例化成列表):

 def get_first_key(dictionary): for key in dictionary.keys(): return key first_key = get_first_key(colors) first_val = colors[first_key] 

如果你需要一个有序的词典,你可以使用odict 。

解决字典的元素就像坐在驴子上,享受骑行。

由于规则的Python DICTIONARY是无序的

如果有

 dic = {1: "a", 2: "aa", 3: "aaa"} 

现在假设如果我喜欢dic[10] = "b" ,那么它总是不会像这样添加

 dic = {1:"a",2:"aa",3:"aaa",10:"b"} 

这可能是

 dic = {1: "a", 2: "aa", 3: "aaa", 10: "b"} 

要么

 dic = {1: "a", 2: "aa", 10: "b", 3: "aaa"} 

要么

 dic = {1: "a", 10: "b", 2: "aa", 3: "aaa"} 

或者任何这样的组合。

所以拇指规则是DICTIONARY无序的

你不能,因为dict是无序的。 你可以使用.popitem()来获得一个任意的项目,但是会从字典中删除它。

实际上,我发现了一个真正帮助我的新颖解决scheme。如果您特别关注列表或数据集中某个特定值的索引,则可以将该词典的值设置为该索引!

只是看:

 list = ['a', 'b', 'c'] dictionary = {} counter = 0 for i in list: dictionary[i] = counter counter += 1 print(dictionary) # dictionary = {'a':1, 'b':2, 'c':3} 

现在,通过hashmaps的力量,你可以在固定的时间内把你的参数索引(又快了很多)

字典不是列表。

用列表你可以在enter foo[0] here来获得这个值。

字典有.value和.keys()函数。

它也更可取的使用尝试/除非你反复通过一个字典。