zoukankan      html  css  js  c++  java
  • python中sort方法

    最近学python基础,看了冒泡排序方法,觉得好难,今天看到冒泡排序可以有一个简单的方法,sort(),赶紧百度学习了下,真是方便。

    只有列表可以用sort方法,元组不可以使用。

    一:两种基本形式

    (1)  iterable.sort(cmp=None, key=None, reverse=False)   #python 2.x
         iterable.sort(key=None, reverse=False)            #python 3.x
    (2)  sorted(iterable, cmp=None, key=None, reverse=False)        #python 2.x
         sorted(iterable, key=None, reverse=False)                  #python 3.x
    # 由此可看出,Python 3.x 取消了 cmp 参数,所以如果想给 sorted()函数传参的话,就剩下key和reverse,其中reverse 就是返回正常排序的反序, 
    

     参数解释:

      第一个参数是一个iterable,返回值是一个对iterable中元素进行排序后的列表(list)。

      可选的参数有三个,cmp、key和reverse。
      1)cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。
      2)key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
      3)reverse是一个布尔值。如果设置为True,列表元素将被倒序排列。
     
      通常来说,key和reverse比一个等价的cmp函数处理速度要快。这是因为对于每个列表元素,cmp都会被调用多次,而key和reverse只被调用一次。
    简单实例:
    1.原址排序
    #sort排序
    a = [1, 2, 3, 9, 7, 5, 44, 33, 45, 55, 66, 322, 234, 455, 231]
    a.sort()
    print(a)
    

    结果如下:

    [1, 2, 3, 5, 7, 9, 33, 44, 45, 55, 66, 231, 234, 322, 455]

    2.副本排序(a.分片排序)

    x = [8, 4, 6, 3, 1]
    y = x[:]
    y.sort()
    print(x) #[8, 4, 6, 3, 1]
    print(y) #[1, 3, 4, 6, 8]

     b.sorted副本排序

    a = [10, 8, 7, 4, 1, 3]
    b = sorted(a)
    print(a)     #[10, 8, 7, 4, 1, 3]
    print(b)     #[1, 3, 4, 7, 8, 10]
    

      

     

  • 相关阅读:
    【bzoj2724】[Violet 6]蒲公英 分块+STL-vector
    【bzoj4026】dC Loves Number Theory 可持久化线段树
    【bzoj3744】Gty的妹子序列 分块+树状数组+主席树
    【bzoj3166】[Heoi2013]Alo 可持久化Trie树+STL-set
    【bzoj3060】[Poi2012]Tour de Byteotia 并查集
    【bzoj3510】首都 LCT维护子树信息(+启发式合并)
    【bzoj4530】[Bjoi2014]大融合 LCT维护子树信息
    【bzoj3261】最大异或和 可持久化Trie树
    【bzoj2081】[Poi2010]Beads Hash
    【bzoj4260】Codechef REBXOR Trie树
  • 原文地址:https://www.cnblogs.com/yaohanbaby/p/8946361.html
Copyright © 2011-2022 走看看