先按元组排序,然后按第二个排序第三个

时间:2016-03-14 18:43:44

标签: python

我有以下元组:

[[278, 388, 0.95434654], [279, 388, 0.98770386], [280, 388, 0.960356], [442, 388, 0.98245245], [443, 388, 0.96607447], [278, 389, 0.95714802], [279, 389, 0.98451048], [280, 389, 0.95131117], [442, 389, 0.98007435], [443, 389, 0.95733315]]

我想先排序,然后排第二,然后排在第三位。

我尝试了以下内容,但它只是先排序:

def getKey(item):
    return item[0]

all_matches_tuple = sorted(all_matches_tuple, key=getKey)

1 个答案:

答案 0 :(得分:1)

只需在没有键的情况下排序,默认是按字典顺序对元组进行排序:

sorted(all_matches_tuple)

演示:

>>> sorted([[278, 388, 0.95434654], [279, 388, 0.98770386], [280, 388, 0.960356], [442, 388, 0.98245245], [443, 388, 0.96607447], [278, 389, 0.95714802], [279, 389, 0.98451048], [280, 389, 0.95131117], [442, 389, 0.98007435], [443, 389, 0.95733315]])
[[278, 388, 0.95434654], [278, 389, 0.95714802], [279, 388, 0.98770386], [279, 389, 0.98451048], [280, 388, 0.960356], [280, 389, 0.95131117], [442, 388, 0.98245245], [442, 389, 0.98007435], [443, 388, 0.96607447], [443, 389, 0.95733315]]

但请注意,您的示例实际上并不包含第一个和第二个数字相等的任何值。