Python:不使用内置排序函数的另一种排序方法?

Python:不使用内置排序函数的另一种排序方法?,python,list,python-3.x,tuples,Python,List,Python 3.x,Tuples,我们使用元组(,)表示一个人。给定一个人员列表,编写一个函数sort_age对人员进行排序,并按顺序返回一个列表,使老年人位于列表的最前面。人员名单的一个例子是[(“M”,23),(“F”,19),(“M”,30)]。排序后的列表看起来像[(“M”,30),(“M”,23),(“F”,19)] 我的做法: def sort_age(lst): lst.sort(key=lambda x: (x[1],x[0]),reverse=True) return lst 是否有其他不使用.s

我们使用
元组(,)
表示一个人。给定一个人员列表,编写一个函数sort_age对人员进行排序,并按顺序返回一个列表,使老年人位于列表的最前面。人员名单的一个例子是
[(“M”,23),(“F”,19),(“M”,30)]
。排序后的列表看起来像
[(“M”,30),(“M”,23),(“F”,19)]

我的做法:

def sort_age(lst):
   lst.sort(key=lambda x: (x[1],x[0]),reverse=True)
   return lst

是否有其他不使用.sort的方法来执行此操作?

假设您需要一份输入的副本,而不修改输入本身,则该副本将被排序,例如:

l2 = list(sorted(l1, key=lambda x: -x[1]))
def自定义排序(lst):
对于范围(0,len(lst)-1内的i:
对于范围(i+1,len(lst))内的j:

如果lst[i][1]是,如果您自己实现排序算法。如果您认为
lambda
很复杂,请尝试在本机python中实现性能排序算法。
def custom_sort(lst):
    for i in range(0,len(lst)-1):
        for j in range(i+1,len(lst)):
            if lst[i][1]<lst[j][1]:
                lst[i],lst[j]=lst[j],lst[i]
    return lst