我有一本字典,其中的条目格式为
a = dict({(2,2013):[], (2,2011):[], (7,2013):[] , (4,2013):[]})
我希望我的输出是这样的:
{(2,2011):[], (2,2013):[], (4,2013):[] , (7,2013):[]}
顺便说一句,它应该是(月,年),我怎样才能做到这一点?
我有一本字典,其中的条目格式为
a = dict({(2,2013):[], (2,2011):[], (7,2013):[] , (4,2013):[]})
我希望我的输出是这样的:
{(2,2011):[], (2,2013):[], (4,2013):[] , (7,2013):[]}
顺便说一句,它应该是(月,年),我怎样才能做到这一点?
import operator
myDict = {1: 1, 2: 2, 4:4, 2:1}
sorted_myDict = sorted(myDict.iteritems(), key=operator.itemgetter(1))
sorted_myDict 将是按每个元组中的第二个元素排序的元组列表。
@Decency 的回答也是很好的选择。
如果出于某种原因需要保留订单,可以使用 OrderedDict 对象。
有序字典就像普通字典一样,但它们会记住插入项目的顺序。当迭代一个有序字典时,项目按照它们的键被第一次添加的顺序返回。
文档:http ://docs.python.org/2/library/collections.html#collections.OrderedDict
class collections.OrderedDict([items])
经过大量尝试后,我改变了方法,而不是元组,我使用了日期时间对象,然后应用了:
月排序=排序(月.iteritems(),键=operator.itemgetter(0))