-3

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

text.items()[: 2]

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

我想按 id1 对其进行排序。有什么帮助吗?

4

2 回答 2

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')]
于 2013-11-02T16:17:46.457 回答
1

假设 dictionary.items 返回:

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

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

items.sort(key=lambda item: item[0][0])
于 2013-11-02T14:20:14.467 回答