下面是对“详解python的sorted函数对字典按key排序和按value排序”的完整攻略,主要分为以下几个部分:
- sorted函数的介绍
- 对字典按key排序
- 对字典按value排序
- 示范代码演示
1. sorted函数的介绍
sorted函数是Python内置的排序函数,它可以对序列、集合和字典等可迭代类型进行排序。sorted函数默认按照升序排序,如果需要降序排序,则需要指定reverse=True参数。
2. 对字典按key排序
当我们需要对字典按key进行排序时,可以使用sorted函数,由于字典是一种无序的数据类型,所以需要使用items()方法将其转换为元组列表,然后再进行排序,单独使用sorted函数的话,只会对字典的key进行排序,而无法对其value进行排序。
下面是示例代码:
# 对字典按key排序
my_dict = {'b': 5, 'c': 3, 'a': 10}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[0])
print(sorted_dict)
输出结果为:[('a', 10), ('b', 5), ('c', 3)]
在上面的代码中,我们传递了一个lambda函数作为sorted函数的key参数,该函数的作用是返回元组x中的第一个元素x[0],也就是对字典的key进行排序。
3. 对字典按value排序
如果需要对字典按value进行排序,我们需要通过sorted函数的key参数传递一个lambda函数,该函数的作用是返回元组x中的第二个元素x[1],即字典的value,从而实现按照value进行排序。
下面是示例代码:
# 对字典按value排序
my_dict = {'b': 5, 'c': 3, 'a': 10}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)
输出结果为:[('c', 3), ('b', 5), ('a', 10)]
在上面的代码中,我们传递了一个lambda函数作为sorted函数的key参数,该函数的作用是返回元组x中的第二个元素x[1],也就是对字典的value进行排序。
4. 示范代码演示
下面是一个完整的示范代码,演示了如何对字典按key和value进行排序:
# 对字典按key和value排序的完整代码示例
my_dict = {'b': 5, 'c': 3, 'a': 10}
# 按key升序排序
sorted_by_key = sorted(my_dict.items(), key=lambda x: x[0])
print(sorted_by_key)
# 按key降序排序
sorted_by_key_reverse = sorted(my_dict.items(), key=lambda x: x[0], reverse=True)
print(sorted_by_key_reverse)
# 按value升序排序
sorted_by_value = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_by_value)
# 按value降序排序
sorted_by_value_reverse = sorted(my_dict.items(), key=lambda x: x[1], reverse=True)
print(sorted_by_value_reverse)
通过上述代码可以看到,按照key和value排序都需要传递一个lambda函数作为sorted函数的key参数,它们的区别在于lambda表达式中取元素的下标不同。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解python的sorted函数对字典按key排序和按value排序 - Python技术站