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
注意字符串排序是先排大写字母,再排小写字母。