如何根据 python 中的最后一个元素在列表列表中找到前 3 个列表?
How to find the top 3 lists in a list of list based on the last element in python?
我在Python中有一个列表:
list_all = [['orange', 'the dress', '127456'],
['pink', 'cars', '543234'],
['dark pink' 'doll', '124098'],
['blue', 'car', '3425'],
['sky blue', 'dress', '876765']]
我想 return 最后一部分中数字最多的前 3 个列表。像这样:
result = [['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]
我只是找不到这样做的逻辑。我已经尝试了很多,但只是被一行代码卡住了:
for each in list_all:
if len(each[-1].split(','))
请帮我解决这个问题。我是 Python 的新手,正在学习它。非常感谢。
你可以用 sorted()
:
sorted(list_all, key = lambda x: int(x[-1]))[-3:][::-1]
输出:
[['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]
使用 lambda
修改自:How to sort a 2D list?
result = sorted(list_all ,key=lambda l:int(l[-1]), reverse=True)[:3]
这个returns
[['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]
我在Python中有一个列表:
list_all = [['orange', 'the dress', '127456'],
['pink', 'cars', '543234'],
['dark pink' 'doll', '124098'],
['blue', 'car', '3425'],
['sky blue', 'dress', '876765']]
我想 return 最后一部分中数字最多的前 3 个列表。像这样:
result = [['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]
我只是找不到这样做的逻辑。我已经尝试了很多,但只是被一行代码卡住了:
for each in list_all:
if len(each[-1].split(','))
请帮我解决这个问题。我是 Python 的新手,正在学习它。非常感谢。
你可以用 sorted()
:
sorted(list_all, key = lambda x: int(x[-1]))[-3:][::-1]
输出:
[['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]
使用 lambda
修改自:How to sort a 2D list?
result = sorted(list_all ,key=lambda l:int(l[-1]), reverse=True)[:3]
这个returns
[['sky blue', 'dress', '876765'],
['pink', 'cars', '543234'],
['orange', 'the dress', '127456']]