Python函数实现列表和字典的排序
Python是一种高级编程语言,因为具有简单易用、代码可读性高等特点,在计算机编程中广受欢迎。其中,列表和字典是Python中的两种常用变量类型,列表用于存储多个值的有序集合,字典用于存储键值对的无序集合。本文将介绍如何通过Python函数来实现列表和字典的排序。
一、列表的排序
Python的列表类型有一个叫做sort()的方法,能够直接对列表进行排序,而不需要另外创建一个排序后的副本。sort()方法有以下两种使用方式:
1. 对原始列表进行排序
使用方式:list.sort(key=None, reverse=False)
其中,key是一个可选参数,表示排序规则,如果不指定,则按照默认规则排序,reverse也是一个可选参数,表示排序顺序,如果不指定,则按照升序排序。
示例代码:
# 升序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] a.sort() print(a) # 降序排序 a.sort(reverse=True) print(a)
运行结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
2. 返回一个新的排序后的列表
使用方式:sorted(iterable, key=None, reverse=False)
其中,iterable是一个可迭代对象,例如列表、元组、字符串等等。
示例代码:
# 升序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] b = sorted(a) print(b) # 降序排序 c = sorted(a, reverse=True) print(c)
运行结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
二、字典的排序
字典是无序的,但我们可以通过Python函数来实现对字典的排序。Python的字典类型有一个叫做sorted()的函数,它可以对字典按键或值进行排序,返回一个新的排序后的列表。请注意,排序后的结果将不再是字典类型。
使用方式:sorted(iterable, key=None, reverse=False)
其中,iterable是一个字典类型的对象,key是一个可选参数,表示排序规则,如果不指定,则按照默认规则排序,reverse也是一个可选参数,表示排序顺序,如果不指定,则按照升序排序。
示例代码:
# 按键排序
d = {'a': 3, 'c': 1, 'b': 2}
e = sorted(d.items())
print(e)
# 按值排序
f = sorted(d.items(), key=lambda x:x[1])
print(f)
# 按值降序排序
g = sorted(d.items(), key=lambda x:x[1], reverse=True)
print(g)
运行结果:
[('a', 3), ('b', 2), ('c', 1)]
[('c', 1), ('b', 2), ('a', 3)]
[('a', 3), ('b', 2), ('c', 1)]
注:items()方法返回一个可迭代的元组序列,其中每个元组包含一个键值对。
三、总结
Python提供了sort()方法和sorted()函数来排序列表和字典。其中,sort()方法用于原地排序,会修改原始列表,而sorted()函数则返回一个新的排序后的列表。无论是对列表还是字典进行排序,都可以指定排序规则和排序顺序。在此基础上,读者可以根据具体情况选择合适的方法来实现排序。
