Skip to content

排序

  • 对列表进行排序
  • 对元组进行排序
  • 对字符串进行排序

sort()

  • sort() 方法用于对列表进行排序,默认是升序排序。
  • sort() 方法会改变原列表。
python
ls = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 升序排序
ls.sort()
print(ls) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 降序排序
ls.sort(reverse=True)
print(ls) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

sorted()

  • sorted() 函数用于对列表进行排序,默认是升序排序。
  • sorted() 函数返回一个新的列表,不会改变原列表。
python
ls = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 升序排序
ls = sorted(ls)
print(ls) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 降序排序
ls = sorted(ls, reverse=True)
print(ls) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
  • 复杂排序对列表中的元素进行排序,默认是升序排序。
  • 可以使用 key 排序函数 来指定排序的依据。
  • 可以使用 reverse 参数来指定排序的方向。
python
# 升序排序
ls = [{"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 32},{"name": "wangwu", "age": 19}]
ls = sorted(ls, key=lambda x: x["age"])
print(ls) # [{'name': 'zhangsan', 'age': 18}, {'name': 'wangwu', 'age': 19}, {'name': 'lisi', 'age': 32}]

# 降序排序
def fn(item):
    return item['age']

ls = [{"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 32},{"name": "wangwu", "age": 19}]
ls = sorted(ls, key=fn, reverse=True)
print(ls) # [{'name': 'lisi', 'age': 32}, {'name': 'wangwu', 'age': 19}, {'name': 'zhangsan', 'age': 18}]