sort和sorted的区别和使用方法

    技术2022-07-13  93

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。

    ①简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list。

    >>> a = [5, 2, 3, 1, 4] >>> a.sorted() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'list' object has no attribute 'sorted' >>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]

    ②你也可以使用list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。

    >>> a = [5, 2, 3, 1, 4] >>> a.sort() >>> a [1, 2, 3, 4, 5]

    ③另一个不同就是list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。

    >>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5]

    ④key=lambda 元素: 元素[字段索引] 例如:想对元素第二个字段排序,则key=lambda y: y[1],相对元素第一个字段排序,则key=lambda y: y[0] 备注:这里y可以是任意字母,等同key=lambda x: x[1]或者key=lambda x: x[0]

    >>>list = [('a', 4), ('b', 2), ('c', 5), ('d', 3), ('e', 1)] >>>print(sorted(list, key=lambda x: x[0])) #对第一个元素排序 >>>print(sorted(list, key=lambda y: y[1])) #对第二个元素排序 [('a', 4), ('b', 2), ('c', 5), ('d', 3), ('e', 1)] [('e', 1), ('b', 2), ('d', 3), ('a', 4), ('c', 5)]

    python 列表排序方法sort、sorted技巧篇

    Processed: 0.011, SQL: 9