Python排序函数详解(高级篇)

  

排序用于对集合进行排序(这里集合是对可迭代对象的一个统称,他们可以是列表,字典,集,甚至是字符串),它的功能非常强大

  

<强> 1,对列表排的序,返回的对象不会改变原列表
  

        列表=(1、5、7、2、4)      排序(列表)   出[87]:[1、2、4、5、7]   #可以设定时候排序方式,默认从小到大,设定反向=False可以从大到小   排序(列表,反向=False)   出[88]:[1、2、4、5、7]      排序(列表,反向=True)   [89]:[7、5、4、2、1)      之前      

<强> 2,根据自定义规则来排的序,使用参数:关键
  

        #使用钥匙,默认搭配λ函数使用   排序(识字课,关键=λx: len (x))   [92]:[' a ',‘是’,‘男孩’,‘布鲁斯’,‘帅’)      排序(识字课,关键=λx: len (x)反向=True)   [93]:[“帅”,“布鲁斯”,‘男孩’,‘是’,‘)      之前      

<强> 3,根据自定义规则来排的序,对元组构成的列表进行排序
  

        tuple_list=[(' A ', 1 5), (B、3、2), (“C”, 2,6)]   #键=λx: x[1]中可以任意选定x中可选的位置进行排序   排序(tuple_list关键=λx: x [1])      [94]:[(' A ', 1 5), (' C ' 2 6), (B、3、2)]      排序(tuple_list关键=λx: x [0])   出[95]:[(' A ', 1 5), (B、3、2), (“C”, 2,6)]      排序(tuple_list关键=λx: x [2])   出[96]:[(B、3、2), (' A ', 1 5), (“C”, 2,6)]   之前      

<强> 4排序的元素是自定义类
  

        类tuple_list:   def __init__(自我,>   类tuple_list:   def __init__(自我,>   tuple_list=[(' A ', 1 5), (B、3、2), (“C”, 2,6)]      类tuple_list_class:   def __init__(自我,>   在祝辞祝辞l=[(' a ', 1), (' b ', 2), (“c”, 6), (' d ', 4), (“e”, 3)]   在祝辞祝辞排序(l,关键=λx: x [0])   出[39]:[(' a ', 1), (' b ', 2), (“c”, 6), (' d ', 4), (“e”, 3)]   在祝辞祝辞排序(l,关键=λx: x[0],反向=True)   出[40]:[(“e”, 3), (' d ', 4), (“c”, 6), (' b ', 2), (' a ', 1)]   在祝辞祝辞排序(l,关键=λx: x [1])   出[41]:[(' a ', 1), (' b ', 2), (“e”, 3), (' d ', 4), (“c”, 6)]   在祝辞祝辞排序(l,关键=λx: x[1],反向=True)   出[42]:[(“c”, 6), (' d ', 4), (“e”, 3), (' b ', 2), (' a ', 1)]   之前   
     

这里,列表里面的每一个元素都为二维元组,主要参数传入了一个λ函数表达式,其x就代表列表里的每一个元素,然后分别利用索引返回元素内的第一个和第二个元素,这就代表了排序()函数利用哪一个元素进行排列。而相反参数就如同上面讲的一样,起到逆排的作用。默认情况下,反向参数为假。
  当然,正如一开始讲到的那样,如果想要对列表直接进行排序操作,可以用成员方法排序()来做:
  

        在祝辞祝辞l。sort(关键=λx: x [1])   在祝辞祝辞l   出[45]:[(' a ', 1), (' b ', 2), (“e”, 3), (' d ', 4), (“c”, 6)]   在祝辞祝辞l。sort(关键=λx: x[1],反向=True)   在祝辞祝辞l   出[47]:[(“c”, 6), (' d ', 4), (“e”, 3), (' b ', 2), (' a ', 1)]      

对于三维及以上的数据排排序,上述方法同样适用。

  

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

Python排序函数详解(高级篇)