内置函数sorted用于对可迭代对象进行排序。
函数原型: sorted(iterable, * , key=None, reverse=False)
参数说明:
iterable:可迭代对象,比如列表,字符串,字典等等
key:作用于可迭代对象的每个元素函数,该函数返回一个新的值,该值参与真正的排序,
如果key为None,则直接使用可迭代对象元素进行排序
reverse:是否倒序,默认顺序排序(从小到大),如果设置该值为True,则是从大到小进行排序
元组列表排序
#迭代对象 元素=(名字,成绩)
tuple_l = [('Bob',75), ('Adam', 92), ('Bart', 66), ('Lisa',88)]
#对上门的元组使用名字进行排序
def by_name(t):
#t:该参数为可迭代对象tuple_l的元素,为一个元组 ('Bob',75)、('Adam',92)、...
#返回元组的第一个元素返回用于排序,Bob、Adam、Bart、Lisa
return t[0]
#将可迭代对象tuple_l的每个元素 ('Bob',75)、('Adam',92)、...经过key对应的函数进行转换
#('Bob',75)->by_name(('Bob',75))->'Bob'
#('Adam',92)->by_name(('Adam',92))->'Adam'
#('Bart',66)->by_name(('Bart',66))->'Bart'
#('Lisa',88)->by_name(('Lisa',88))->'Lisa'
sorted_result = sorted(tuple_l, key=by_name)
= sorted(tuple_l, ('Bob','Adam', 'Bart', 'Lisa'))
print(sorted_result )
#结果
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
网友评论