如何索引到字典?
我有一个字典如下:
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()函数。
它也更可取的使用尝试/除非你反复通过一个字典。