最近在写代码的时候遇到了对列表和对字典的排序,在这里总结一下,以便以后遇到排序问题的时候可以直接用。
排序函数:
sorted(item, key, reverse)
参数说明:
item:我们需要排序的目标对象,可能是列表,字典等迭代对象
key:用于指定一个特定的排序方式,例如我们是想按照字典的键排序还是字典的值排序,还是按照大小写排序,其key是一个可选参数
reverse:用于指定是按照升序排序还是按照降序排序,默认按照升序排序
举例1:
#对列表进行排序
a = [5,3,4,2,1]
print(sorted(a))
#对元组进行排序
a = (5,4,3,1,2)
print(sorted(a))
#字典默认按照键key进行排序
a = {4:1, 5:2,3:3,2:6,1:8}
print(sorted(a.items()))
#对集合进行排序
a = {1,5,3,2,4}
print(sorted(a))
#对字符串进行排序
a = "51423"
print(sorted(a))
结果为:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[(1, 8), (2, 6), (3, 3), (4, 1), (5, 2)]
[1, 2, 3, 4, 5]
['1', '2', '3', '4', '5']
举例2:key关键字的使用,在调用 sorted() 函数时,还可传入一个 key 参数,它可以接受一个函数,该函数的功能是指定 sorted() 函数按照什么标准进行排序。
# 定义一个字典
leaders = {4: "Y", 2: "E", 3: "T", 1: "W"}
print(leaders)
# {4: 'Y', 2: 'E', 3: 'T', 1: 'W'}
# 按照字典的键进行排序,这里的x[0]指的是字典中的键,x[1]的话指的就是值,排序则是按照这个关键字进行排序
leaders = dict(sorted(leaders.items(), key=lambda x: x[0]))
print(leaders)
# {1: 'W', 2: 'E', 3: 'T', 4: 'Y'}
举例3:sorted()函数默认对序列中元素进行升序排序,通过手动将其 reverse 参数值改为 True,可实现降序排序。
# sorted()函数默认对序列中元素进行升序排序,通过手动将其 reverse 参数值改为 True,可实现降序排序。
#对列表进行排序
a = [5,3,4,2,1]
print(sorted(a,reverse=True))
# 结果为:[5,4,3,2,1]