sort函数对于list进行排序的时候有如下规则
sorted函数中的key有两个功能:1.对于单纯的list而言,key主要对元素做处理,然后按照处理的结果排序。2.对于list中包含list的而言key处理处理之外,还有选择的作用,选择每个元素(此时每个元素仍然是list)的第几个元素来组成新的list进行排序
2.sorted()
函数按照keys进行排序,并按照对应关系返回list相应的元素:
sorted([36, 5, -12, 9, -21], key=abs)
keys排序结果 => [5, 9, 12, 21, 36]
最终结果 => [5, 9, -12, -21, 36]
key是对list的每个元素进行变化(但是不改变每个元素的量)比如abs对每个元素取绝对值,相当于新建一个list,对这个新建的 list进行排序,进而把排序的索引给原来的list,原来的list就根据这个索引进行摆放位置。
个人总结:我个人的理解是,sorted函数中是把list中的元素一个个传进key中去的,而key是对一个元素进行处理的,而不是直接处理list,传完之后再进行归置到另一个list中排序。