python中list.sort方法和内置函数sorted的区别

2020-04-23  本文已影响0人  eeert2

Python中有两种排序的方法:sortedlist.sort

一、sorted 排序

import random


def gene_data():
    """生产 10 个随机数"""
    for _ in range(10):
        yield random.randrange(100)


if __name__ == '__main__':
    ret = sorted(gene_data())
    # 你这里打印的随机数可能会不同
    print(ret)  # [0, 23, 29, 35, 42, 44, 49, 54, 81, 90]

二、list.sort排序

三、两种方法对比

四、key,reverse参数的使用

构造用来排序的对象

class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age

    def __str__(self):
        return self.name

    def __repr__(self):
        return self.name

排序函数

def key(person: Person) -> int:
    """Person 对象排序的关键字函数

    :param person: Person 对象
    :return: 代表 Person 对象的关键字
    """
    return person.age

运行

if __name__ == '__main__':
    son = Person('son', 18)
    father = Person('father', 42)
    grandfather = Person('grandfather', 66)

    family = [father, son, grandfather]
    family.sort(key=key)
    print(family)  # [son, father, grandfather]

    family.sort(key=key, reverse=True) # 倒序
    print(family)  # [grandfather, father, son]

下一篇:Python 的key参数

上一篇 下一篇

猜你喜欢

热点阅读