使用内部列表中的特定变量对列表进行排序

时间:2016-05-14 15:08:23

标签: python list sorting

我正在对文件进行一些操作并将其行转换为列表

l1 = [
    ['john', 'age', '23', 'has', 'scored', '90,'],
    ['sam', 'scored', '70,', 'and', 'age', 'is', '19,'],
    ['rick', 'failed', 'as' ,'he', 'scored', '20,'],
]

我们看到并非所有的列表/行都相似,但有一件事是常见的,即整数后跟单词'scored'。 有没有办法可以在关键字'scored'之后的整数基础上进行排序?

早些时候我曾尝试使用类似的列表跟随它并且它已经有效但在上面列表中没有帮助

sorted(l1, key=lambda l: int(l[4].rstrip(',')),reverse=True)

1 个答案:

答案 0 :(得分:2)

这是一种方式:

>>> a_list = [['john', 'age', '23', 'has', 'scored', '90,'], 
['sam', 'scored', '70,', 'and', 'age', 'is', '19,'], 
['rick', 'failed', 'as', 'he', 'scored', '20,']]

>>> sorted(a_list, key = lambda l: int(l[l.index('scored') + 1].strip(",")), reverse=True)

[['john', 'age', '23', 'has', 'scored', '90,'], 
 ['sam', 'scored', '70,', 'and', 'age', 'is', '19,'], 
 ['rick', 'failed', 'as', 'he', 'scored', '20,']]