Python 按内部列表的特定索引对列表进行排序

Python 按内部列表的特定索引对列表进行排序,python,list,sorting,python-3.x,Python,List,Sorting,Python 3.x,我正在尝试对文件执行一些操作,并将其行转换为列表。但是,整数值也被视为字符串 l1 = [['test', 'hello', '60,'], ['why', 'to', '500,'], ['my', 'choice', '20,']] 因此,我无法根据这些整数值对列表进行排序 有没有一种方法可以将所有这些列表[2]值转换为整数,并在此基础上对外部列表进行排序?或者我可以使用上面列表中的整数对列表进行排序的任何其他方式 预期结果是,排序列表的输出应显示为: [['my', 'choice',

我正在尝试对文件执行一些操作,并将其行转换为列表。但是,整数值也被视为字符串

l1 = [['test', 'hello', '60,'], ['why', 'to', '500,'], ['my', 'choice', '20,']]
因此,我无法根据这些整数值对列表进行排序

有没有一种方法可以将所有这些
列表[2]
值转换为整数,并在此基础上对外部列表进行排序?或者我可以使用上面列表中的整数对列表进行排序的任何其他方式

预期结果是,排序列表的输出应显示为:

[['my', 'choice', '20,'], ['test', 'hello', '60,'], ['why', 'to', '500,']]

使用自定义排序键,仅在排序时将最后一个元素转换为整数:

sorted(l1, key=lambda l: int(l[2].rstrip(',')))
用于为列表中的每个元素生成排序所依据的值。因此,为每个元素调用
lambda
函数,上面的代码提取
l[2]
值,将其转换为整数。
str.rstrip()
调用首先删除后面的逗号

演示:


非常感谢,它可以工作:)//再查询一次,现在这将按升序对列表进行排序,如何进行降序排序?@Zoro99:add
reverse=True
sorted()
调用中。
>>> l1 = [['test', 'hello', '60,'], ['why', 'to', '500,'], ['my', 'choice', '20,']]
>>> sorted(l1, key=lambda l: int(l[2].rstrip(',')))
[['my', 'choice', '20,'], ['test', 'hello', '60,'], ['why', 'to', '500,']]