zoukankan      html  css  js  c++  java
  • python sort()和sorted()的不同

    对列表中的元素进行排序,有两种常用方法:

    1.

    lst = [3, 5, 2, 1, 7]
    lst.sort()
    print(lst)

    2.

    lst = [3, 5, 2, 1, 7]
    lst = sorted(lst)
    print(lst)

    虽然二者都可以实现排序,也都可以设定 key(排序函数)和 reverse(逆序)参数,但在使用时却有个很大的区别:

    • list 的 sort 方法是在原列表上进行排序,没有返回值,调用后列表中的元素即成为有序的。如果你把结果赋值,就会得到 None;

    • 内置函数 sorted 则不修改原列表,而是生成一个新列表作为返回值。所以调用后必须赋值给变量才能保存结果。

    Python 这么设计固然有它的道理(sorted 是后引入的,对 sort 的补充),但这并不是必然的选择。比如与 sorted 功能有些类似的,random 模块的 shuffle 方法,就是在原列表基础上打乱顺序,而非返回一个新列表。

     

    你很难仅从方法的所属和名称就判断它的参数和返回值是怎样的。比如 range(a, b) 是包括 a 不包括 b,而 random.randint(a, b) 则是包括 a 也包括 b。

     

    所以你在使用一个方法时,必定需要查阅相关文档,或在 python shell 中使用 help(方法名),了解参数和返回值的具体限定。

  • 相关阅读:
    HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
    LCA-tarjan understand 2
    LCA-tarjan understand
    MST-prim ElogV
    MST-kruskal ElogE+V
    transformjs 污染了 DOM?是你不了解它的强大
    检查浏览器支持Webp
    canvas实现平铺水印
    2016年总结--成长
    微信小程序体验(1):携程酒店机票火车票
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/12161324.html
Copyright © 2011-2022 走看看