Python 列表排序指南:多种排序方法与示例代码

Python 列表排序指南:多种排序方法与示例代码

💡 原文中文,约3000字,阅读约需8分钟。
📝

内容提要

本文介绍了在 Python 中对列表进行排序的方法,包括使用 sort() 方法和 sorted() 方法进行基本排序、字典列表排序和多键值排序。还讨论了如何使用 lambda 表达式简化代码,以及处理二维列表和去重排序的技巧。

🎯

关键要点

  • 在 Python 中,列表排序是常见需求,可以对数字和字符串列表进行排序。
  • 使用 sort() 方法可以直接修改列表,支持升序和降序排序。
  • sort() 方法的参数包括 reverse(控制升降序)和 key(自定义排序函数)。
  • 通过 key 参数,可以对字典列表进行排序,例如按字典的 age 键排序。
  • 使用 lambda 表达式可以简化字典列表的排序代码。
  • sorted() 方法返回一个新列表,不会更改原始列表,支持 key 和 reverse 参数。
  • 可以通过 lambda 表达式实现多键值排序,例如先按 age 排序,再按 score 排序。
  • Python 可以对二维列表按某一列进行排序,使用 lambda 表达式指定排序依据。
  • 可以通过集合去重后再排序列表,确保结果唯一且有序。
  • 使用 enumerate 可以在排序时保留原始索引,方便后续操作。

延伸问答

Python 中如何使用 sort() 方法对列表进行排序?

使用 sort() 方法可以直接修改列表,支持升序和降序排序,语法为 list.sort(reverse=True|False, key=sort_function)。

如何在 Python 中对字典列表进行排序?

可以通过 sort() 方法的 key 参数指定排序的键,例如 items.sort(key=lambda item: item['age']) 按 age 键排序。

什么是 sorted() 方法,它与 sort() 方法有什么区别?

sorted() 方法返回一个新列表,不会更改原始列表,而 sort() 方法会直接修改原列表。

如何在 Python 中实现多键值排序?

可以在 lambda 表达式中返回多个键,例如 items.sort(key=lambda item: (item['age'], item['score']))。

如何对二维列表按某一列进行排序?

可以使用 lambda 表达式指定排序依据,例如 data.sort(key=lambda x: x[0]) 按第一列排序。

如何在排序时去重列表?

可以通过集合去重后再排序,例如 unique_sorted_items = sorted(set(items))。

➡️

继续阅读