用两个键对Python字典排序

用两个键对Python字典排序,python,Python,我有一本这种形式的python字典: text.items()[:2] 我想按id1排序。有什么帮助吗?假设dictionary.items返回: items = [(('id','id1'), 'text'), (('id','id1'), 'text'), (('id','id1'), 'text')] 您可以通过执行以下操作按元组的第一个元素进行排序: items.sort(key=lambda item: item[0][0]) Python字典是无序的,因此无法排序。但是,正如您所

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

text.items()[:2]


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

假设dictionary.items返回:

items = [(('id','id1'), 'text'), (('id','id1'), 'text'), (('id','id1'), 'text')]
您可以通过执行以下操作按元组的第一个元素进行排序:

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

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')]

text.items()[:,2]
我确定这是否是一个有效的Python语法——a.B.请详细说明一下好吗?那不是字典。这是一个包含元组的列表,其中包含一些元组和项。@iCodez完全正确!另外,我前面强调的代码——这不是有效的语法,对吗?@AkshatTripathi-Nope。Python仅使用冒号表示其切片符号。也许他指的是
text.items()[::2]
?@iCodez,除非出于某种奇怪的原因,它是
numpy.array
,在这种情况下,它将是第三列的切片表示法。。。但是,我想这不太可能,而且我们也不知道代码中到底是什么。。。
text = {('idA','id2'): 'text',
        ('idB','id1'): 'text',
        ('idC','id3'): 'text',}

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