zoukankan      html  css  js  c++  java
  • 第三章--第三节(补充):列表排序

    零、排序快速讲解

    本节是补充内容,主要讲解列表的排序,列表排序有两种,分别是: list.sort()sorted()。我们来分别看一下。

    1. list.sort()
      sort()直接修改列表,返回值为None。语法如下:
    list.sort([key][,reverse])
    

    其中Key代表用作排序比较的键函数,即自定义排序规则,reverse表示按照升序排序还是降序排序(True为降序,False为升序)。下面通过例子来看一下:

    # 定义一个列表
    nums=[9,5,2,6,0,4,8]
    # 按照升序排列
    nums.sort(reverse=False)
    # 输出结果为[0, 2, 4, 5, 6, 8, 9]
    print(nums)
    
    # 我们定义偶数排前面,奇数排后面
    nums.sort(key=lambda x:(x%2!=0,x))
    # 输出结果为[0, 2, 4, 6, 8, 5, 9]
    print(nums)
    
    1. sorted()
      当我们需要保留原有列表值时,我们需要使用sorted()函数,sorted()返回一个排序后的列表,语法如下:
    sorted(iterable[, key][, reverse])  
    
    

    iterable是一个可迭代对象,这里的key和reverse同sort(),同样我们通过例子来看一下:

    # 定义一个列表
    nums=[9,5,2,6,0,4,8]
    # 按照升序排列
    new_nums=sorted(nums,reverse=False)
    # 输出结果为[0, 2, 4, 5, 6, 8, 9]
    print(new_nums)
    
    # 我们定义偶数排前面,奇数排后面
    new_nums=sorted(nums,key=lambda x:(x%2!=0,x))
    # 输出结果为[0, 2, 4, 6, 8, 5, 9]
    print(new_nums)
    
    

    一、二者的区别

    sort() 是应用在列表上的方法,sorted() 可以对所有可迭代的对象进行排序操作。列表的sort()方法返回的是对已经存在的列表进行操作,而内建函数sorted()方法返回的是一个新的列表,而不是在原来的基础上进行的操作。

    注意:sort()不需要复制列表,因此消耗内存少效率高,如果不需要保留原有的列表,则使用sort()方法,反之使用sorted()函数。

    觉得不错打赏一下吧,金额随意!

  • 相关阅读:
    hdu4135(容斥原理求质数,队列实现)
    poj2559(单调栈)
    poj2796(单调栈)
    icpc2018焦作Transport Ship(背包思想)
    icpc2018焦作Mathematical Curse(动态规划)
    2018icpc徐州OnlineA Hard to prepare
    icpc2018徐州OnlineG-Trace(线段树)
    hdu3499(分层图最短路 or 反向建图)
    MINE
    数论(Mathmatics)总结[1]
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778227.html
Copyright © 2011-2022 走看看