Python提供了两种常用的对列表进行排序的方法:1,列表对象的sort()方法。2,内置的sorted()函数。

1,列表对象的sort()方法

使用列表对象的sort()方法对列表进行排序,排序后原列表中的元素顺序发生改变。即sort()方法是对原列表进行修改。

语法格式:

listname.sort(key=None, reverse=False)

参数说明:

listname:表示要排序的列表名字。

key:接受的是一个只有一个形参的函数名,sort将按照函数返回值的大小对原列表进行排序。

reverse:可选参数,如果将其值指定为True,则按照降序排列;如果为False,则表示升序排序,默认为升序排序。

如,对列表进行排序,按照列表元素里"z" or "Z"的个数进行降序排序。

team = ["huojianhjgn","yonzgzshi","Zaitzuozhe"]
print("原列表",team)
team.sort(key=lambda x:x.lower().count('z'),reverse=True)
print("按照元素中z or Z的个数降序排列",team)

执行结果是:

原列表 ['huojianhjgn', 'yonzgzshi', 'Zaitzuozhe']
按照元素中z or Z的个数降序排列 ['Zaitzuozhe', 'yonzgzshi', 'huojianhjgn']

Process finished with exit code 0

2,使用内置的sorted()函数对列表进行排序

使用内置的sorted()函数对列表进行排序不对原列表直接进行操作,而是返回一个排好序的副本,原列表不会改变。且sorted()函数可以对所有可迭代对象进行排序操作,而不仅仅针对列表,且函数返回值都是返回一个列表。

用法基本相同,语法格式:

sorted(iterable, key=None, reverse=False)

上面的例子使用sorted()函数则为:

team = ["huojianhjgn","yonzgzshi","Zaitzuozhe"]
new_team = sorted(team,key=lambda x:x.lower().count('z'),reverse=True)
print("原列表",team)
print("按照元素中z or Z的个数降序排列",new_team)
如下是对元组进行排序:
team = ("huojianhjgn","yonzgzshi","Zaitzuozhe")
new = sorted(team)
print(new)

执行结果:

['Zaitzuozhe', 'huojianhjgn', 'yonzgzshi']

Process finished with exit code 0
注意字符串排序是先排大写字母,再排小写字母。