我想让每个字典的特定元素成为字典列表中的第一个元素。我该怎么做,或者考虑到字典是无序的,这甚至可能吗?
我不想单独使用 .sort() 或 OrderedDict,因为两者都不会将所需的元素带到键的顶部,因为键是按字母顺序排列的。有没有办法在 Python 2.7 中结合使用 lamba 关键字和 sort 来做到这一点?
例如:
我希望b成为第一个键
{'a': 1, 'b': 2, 'c': 3}
{'b': 2, 'a': 1, 'c': 3}
背景:
我有一大堆字典,其中每个字典代表一堆关于工作的信息。每本词典都有一个标识作业的代码。我的上级希望将此代码移到其字典的顶部。
请您参考如下方法:
字典没有任何顶部或底部。你可以尝试这样的事情:
>>> from itertools import chain
>>> dic = {'a': 1, 'b': 2, 'c': 3}
>>> key = 'b'
for k in chain(key, (dic.viewkeys()-key)):
print k, dic[k]
...
b 2
a 1
c 3
最好使用 OrderedDict。
>>> from collections import OrderedDict
>>> key = 'b'
>>> dic1 = OrderedDict((k,dic[k]) for k in chain(key, (dic.viewkeys()-key)))
>>> next(iter(dic1))
'b'
