在列表中排序几个元组

时间:2014-03-11 00:29:52

标签: python list sorting tuples

如何在Python中对元组列表进行排序。例如,我有:

aList = [ ( 'person', 20, 100 ), ( 'cat', 30, 900 ), ( 'dog', 5, 500 ) ]

所以我想用他们得到的第三个值(100,900和500)对元组进行排序:

aList = [ ( 'cat', 30, 900 ), ( 'dog', 5, 500 ), ( 'person', 20, 100 ) ]

当我使用重复问题的答案时,我得到了相同的值:

data = [ ( 'person', 20, 100 ), ( 'cat', 30, 900 ), ( 'dog', 5, 500 ) ]

def sorted_by_second():
    sorted(data, key=lambda tup: tup[1])
    return data

sorted_by_second()

我得到了:

[('person', 20, 100), ('cat', 30, 900), ('dog', 5, 500)]

2 个答案:

答案 0 :(得分:1)

使用第3项作为键进行排序:

aList.sort(key=lambda x: x[1])

答案 1 :(得分:0)

您可以使用python sorted method,它可以指定key参数,该参数是将列表中的元素作为输入并返回其值进行排序的函数作为输出(例如lambda)。

示例:

sorted_list = sorted(aList, key =  lambda x : x[2])