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