引言

在Python编程中,排序是数据处理中常见且重要的操作。无论是数组还是字典,Python都提供了丰富的排序功能。本文将深入探讨Python中数组与字典的排序技巧,帮助读者轻松掌握这些高效排序方法。

数组排序

1. 使用内置函数 sort()

Python列表(list)的 sort() 方法可以直接在原列表上进行排序,且没有返回值。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers.sort()
print(numbers)

2. 使用 sorted()

sorted() 函数返回一个新的列表,对原列表进行排序,不会改变原列表。

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

3. 指定排序关键字

对于复杂的数据类型,如元组或自定义对象,可以使用 key 参数指定排序关键字。

items = [('apple', 4), ('banana', 1), ('cherry', 2)]
items_sorted = sorted(items, key=lambda x: x[1])
print(items_sorted)

4. 多关键字排序

可以通过组合多个 key 参数实现多关键字排序。

items = [('apple', 4), ('banana', 1), ('cherry', 2)]
items_sorted = sorted(items, key=lambda x: (x[1], x[0]))
print(items_sorted)

字典排序

1. 按键排序

使用 sorted() 函数和字典的 keys()items() 方法可以对字典按键进行排序。

dict1 = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
keys_sorted = sorted(dict1.keys())
print(keys_sorted)

items_sorted = sorted(dict1.items())
print(items_sorted)

2. 按值排序

可以通过 itemgetterlambda 函数实现按值排序。

from operator import itemgetter

items_sorted = sorted(dict1.items(), key=itemgetter(1))
print(items_sorted)

items_sorted = sorted(dict1.items(), key=lambda x: x[1])
print(items_sorted)

3. 按键值排序

要同时按键和值排序,可以使用元组作为 key 参数。

items_sorted = sorted(dict1.items(), key=lambda x: (x[0], x[1]))
print(items_sorted)

总结

本文介绍了Python中数组与字典的排序方法,包括使用内置函数 sort()sorted(),以及如何指定排序关键字。通过这些技巧,读者可以轻松地在Python中进行高效的排序操作。