按列表列排序

2024-04-16 06:14:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的清单:

list1 = [["A",5,2,8,3],["B",9,5,1,5]]

我试着按第二栏排序。我希望列表1是

[["B",9,5,1,5],["A",5,2,8,3]]

因为9大于5,对吗?我在用

sorted(lis1, key=lambda a : a[1])

然而,它并没有对它进行分类;它只是像以前一样。为什么这样不行?你知道吗


Tags: lambdakey列表排序分类sortedlist1lis1
3条回答

你只需要反转它:

list1 = [["A",5,2,8,3],["B",9,5,1,5]]
list1 = sorted(list1, key=lambda a : a[1], reverse=True)
print(list1)
# outputs [["B",9,5,1,5],["A",5,2,8,3]]

9>;5,所以它会在后面出现,除非您反转。你知道吗

使用运算符.itemgetter()功能:

from operator import itemgetter

list1 = [["A",5,2,8,3],["B",9,5,1,5],["C",1,2,8,3]]

print(sorted(list1, key=itemgetter(1)))
print(sorted(list1, key=itemgetter(1), reverse=True))

输出:

[['C', 1, 2, 8, 3], ['A', 5, 2, 8, 3], ['B', 9, 5, 1, 5]]
[['B', 9, 5, 1, 5], ['A', 5, 2, 8, 3], ['C', 1, 2, 8, 3]]

^{}

Return a new sorted list from the items in iterable

它不进行排序。你知道吗

相关问题 更多 >