sorted排序

2019-02-02  本文已影响0人  千寻_足_迹

内置函数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)]

上一篇 下一篇

猜你喜欢

热点阅读