我在列表中有字典列表,需要按分键对列表进行排序。
我能够使用“点”列表的第一个位置进行排序,但希望基于第一个位置和第二个位置进行排序。
a = [
{
'label':'a',
'points': [[70,2],[60,4]]
}
,
{
'label':'b',
'points': [[90,6],[80,8]]
}
,
{
'label':'c',
'points': [[50,10],[40,12]]
}
]
def sort_point_by_first_occur(item):
print item['points'][0][0]
return item['points'][0][0]
print sorted(a, key=sort_point_by_first_occur)
当前输出:-
[{'points': [[50, 10], [60, 4]], 'label': 'a'}, {'points': [[50, 2], [40, 12]], 'label': 'c'}, {'points': [[90, 6], [80, 8]], 'label': 'b'}]
例外的输出:
[{'points': [[50, 2], [60, 4]], 'label': 'a'}, {'points': [[50, 10], [40, 12]], 'label': 'c'}, {'points': [[90, 6], [80, 8]], 'label': 'b'}]
答案 0 :(得分:0)
我建议权重为2个值
def sort_point_by_first_occur(item):
weighted = item['points'][0][0]*1000 + item['points'][0][1]
return weighted
这样,如果第一个位置相等,则第二个将成为平局决胜局