我有这种口述
dict2 = {'value1': [ 2, ['get1', 3], ['post3', 4] ], 'value2' : [1, ['get1', 2], ['post2', 5] ], 'value3' : [7, ['get17', 6], ['post2', 2], ['post3', 3] ] }
我知道如何根据列表中的第一个值(7,2,1)排序。但是,一旦我按第一个值对象对它进行了排序,我只想根据每个列表中的第二个值对列表进行排序。你知道吗
例如这样
'value3' : [7, ['get17', 6], ['post3', 3], ['post2', 2] ],
'value1': [ 2, ['post3', 4], ['get1', 3] ],
'value2' : [1, ['post2', 5], ['get1', 2] ]
我一直在研究像itemgetter这样的东西,但搞不清楚。这在python中是可能的吗?你知道吗
编辑:
这是我如何排序第一个值对象,打印
for key, value in sorted(dict2.iteritems(), key=lambda (k,v): (v,k), reverse=True):
print key, value
放入变量中
sort1 = sorted(dict2.items(), key=operator.itemgetter(1, 1), reverse=True)
您应该考虑以列表或元组的形式获取项,并使用函数或lambda表达式对它们进行排序,如下所示:
既然您已经知道如何基于dict中的第一个值进行排序,那么让我们集中精力对内部序列进行排序。重要的一步是使用切片来修剪初始值,以便可以对剩余的对进行排序:
相关问题 更多 >
编程相关推荐