不使用lambda对嵌套列表进行插入排序



[('巴斯温泉大学','84%','37%','80%','67%','29%','0%'),("奇切斯特大学","80%","42%","75%","0%","0%"),("坎特伯雷基督教堂大学","76%","40%","70%","0%","0%","49%"),("白金汉郡新大学","78%","39%","82%","0%","0%","52%"),("米德尔塞克斯大学","82%","48%","80%","57%","75%","54%")。。。

以上是我的列表示例。这是我要插入排序列表的代码。

def insert_sort(lst):
n = len(lst)
for i in range(n):
j = i
while j > 0 and lst[j-1] > lst[j]:
tmp = lst[j]
lst[j] = lst[j-1]
lst[j-1] = tmp
j -= 1

我想让函数按第一个元素对嵌套列表进行排序。有没有一种方法可以在不使用lambda的情况下做到这一点?

不太明白"没有lambda"是什么意思,如果你不想在排序中的键参数中使用lambda,你可以使用itemgetter,Rember不尝试在生产中实现自己的排序,使用内置排序方法,这很快。

data = [('Bath Spa University', '84%', '37%', '80%', '67%', '29%', '0%'),
('University of Chichester', '80%', '42%', '75%', '0%', '0%', '0%'),
('Canterbury Christ Church University', '76%', '40%', '70%', '0%', '0%', '49%'),
('Buckinghamshire New University', '78%', '39%', '82%', '0%', '0%', '52%'),
('Middlesex University', '82%', '48%', '80%', '57%', '75%', '54%')]
from operator import itemgetter
data.sort(key=itemgetter(0))
print(data)

最新更新