用两个键排序Python字典

时间:2013-11-02 13:50:15

标签: python

我有一个这种形式的python字典:

text.items()[:2]

[(('id','id1'), text', ('id','id1'), 'text', ('id','id1'), 'text')]

我希望按id1排序。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

假设dictionary.items返回:

items = [(('id','id1'), 'text'), (('id','id1'), 'text'), (('id','id1'), 'text')]

您可以通过执行以下操作对元组的第一个元素进行排序:

items.sort(key=lambda item: item[0][0])

答案 1 :(得分:1)

Python字典是无序的,因此无法排序。但是,您似乎理解,可以对从items()iteritems()方法返回的值进行排序。如果字典的键是你的例子中所示的元组,并且你想要对每一个中的第二个值进行排序,那么这是一种有效的方法:

text = {('idA','id2'): 'text',
        ('idB','id1'): 'text',
        ('idC','id3'): 'text',}

print sorted(text.iteritems(), key=lambda item: item[0][1])

输出:

[(('idB', 'id1'), 'text'), (('idA', 'id2'), 'text'), (('idC', 'id3'), 'text')]