python中的排序(一)

  1. 基本排序

简单的升序排序非常简单:只需调用 sorted() 函数即可。它会返回一个新的已排序列表

>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

你也可以使用 list.sort() 方法,它会直接修改原列表(并返回 None 以避免混淆),通常来说它不如
sorted() 方便———但如果你不需要原列表,它会更有效率。

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

另外一个区别是,list.sort() 方法只是为列表定义的,而 sorted() 函数可以接受任何可迭代对象。

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

2.关键函数
list.sort() 和 sorted() 都有一个 key 形参来指定在进行比较之前要在每个列表元素上进行调用的函
数。
例如,下面是一个不区分大小写的字符串比较:

sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

key 形参的值应该是一个函数,它接受一个参数并并返回一个用于排序的键。这种技巧速度很快,因为对于
每个输入记录只会调用一次 key 函数。
一种常见的模式是使用对象的一些索引作为键对复杂对象进行排序。例如:

students = [
    student('Alice', 80, 18),
    student('Bob', 90, 19),
    student('Charlie', 70, 17),
    student('David', 85, 18)
  ]

student_tuple = [(s.name, s.score, s.age) for s in students]

sorted_student_tuple = sorted(student_tuple, key=lambda x: x[1])
students = [
    student('Alice', 80, 18),
    student('Bob', 90, 19),
    student('Charlie', 70, 17),
    student('David', 85, 18)
  ]
sorted_student = sorted(students, key=lambda x: x.score)

相关推荐

  1. python排序

    2024-03-10 12:30:04       22 阅读
  2. Python 字符串列表排序

    2024-03-10 12:30:04       10 阅读
  3. python3按列表元素字典value排序

    2024-03-10 12:30:04       6 阅读
  4. 排序学习(

    2024-03-10 12:30:04       18 阅读
  5. python归并排序

    2024-03-10 12:30:04       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 12:30:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 12:30:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 12:30:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 12:30:04       18 阅读

热门阅读

  1. 【算法】图论算法模板

    2024-03-10 12:30:04       19 阅读
  2. Linux中more和less命令用法

    2024-03-10 12:30:04       22 阅读
  3. HTTP超文本传输协议

    2024-03-10 12:30:04       20 阅读
  4. GPT-prompt大全

    2024-03-10 12:30:04       21 阅读
  5. k8s运维问题整理

    2024-03-10 12:30:04       23 阅读
  6. k8s中pod组件简介

    2024-03-10 12:30:04       19 阅读