2015-09-26 107 views
0

开始比方说,我有一本字典:Python。迭代字典从某些关键

{"a": 1, "b": 2, "h": 55 } 

有没有办法通过字典迭代,从“B”键开始?

+7

你是什么意思*“从......开始”?字典不能保证顺序,所以这没有多大意义。 – jonrsharpe

+1

如果您希望在字典中找到订单,请查找[OrderedDict](https://docs.python.org/2/library/collections.html#collections.OrderedDict) –

+1

字典未订购。它以随机的方式显示字典的键和值。 – 2015-09-26 16:33:33

回答

4

字典有没有顺序;但如果你希望按字母顺序排序,你可以直到你到达'b'键与itertools.dropwhile()键进行排序并跳过:

from itertools import dropwhile 

for key in dropwhile(lambda k: k != 'b', sorted(your_dictionary)): 

演示:

>>> from itertools import dropwhile 
>>> d = {"a": 1, "b": 2, "h": 55 } 
>>> for key in dropwhile(lambda k: k != 'b', sorted(d)): 
...  print key, d[key] 
... 
b 2 
h 55 

即使你使用的是collections.OrderedDict() object(其中保存插入订单),你仍然必须跳过钥匙,直到你找到'起动'钥匙。

+0

好的。我不会在我的解决方案中显示字母顺序(例如键“a”和“b”),键是单词。但是,无论如何要表达这种方法 - 我可以在将来使用它) – MisterMe