【工程实践】python 字典排序

前言

        在数据处理时,为了方便统计经常使用字典存储数据。python中的字典是‘键:值’对的可变序列。排序时可以指定根据键或者是值为对象进行排序。用到的函数是sorted()。

1.语法规则

1-1 代码实例

sorted(iterable, key=None,reverse=False)

1-2 参数说明 

(1)iterable:代表的是可迭代的对象。

(2) key=None:用来进行比较的元素,具体的值来源于可迭代的对象中。

(3)reverse=False:排序规则,reverse=False升序(默认),reverse=True降序。

2.对字典排序

2-1 简单示例

# 字典排序
entity_dict = {'5': 1,'6': 4,'2': 5}
# 按照字典的值进行排序
entity_dict_1 = sorted(entity_dict.items(), key=lambda x: x[1])
# 按照字典的键进行排序
entity_dict_2 = sorted(entity_dict.items(), key=lambda x: x[0])

 排序结果:

【工程实践】python 字典排序_第1张图片

2-2 说明

         以entity_dict.items()返回的列表中的每一个元素,作为匿名函数(lambda)的参数,x[0]即用“键”排序,x[1]即用“值”排序;返回结果为新的列表,可以通过dict()函数转为字典格式。

2-3 复杂示例

entity_dict = [{'name': '5', 'count': 1}, {'name': '6','count':4}, {'name': '2', 'count': 2},{'name': '5', 'count': 6}]
#按name排序
entity_dict_1 = sorted(entity_dict, key=lambda x: x['name'])
#按count降序排序
entity_dict_2 = sorted(entity_dict, key=lambda x: x['count'],  reverse=True)
#name相同按count降序排序
entity_dict_3 = sorted(entity_dict, key=lambda x: (x['name'], -x['count']))

排序结果:

【工程实践】python 字典排序_第2张图片

【工程实践】python 字典排序_第3张图片【工程实践】python 字典排序_第4张图片【工程实践】python 字典排序_第5张图片

2-4 说明

        以列表里面的每一个字典元素作为匿名函数的参数,然后根据需要用键取字典里面的元素作为排序的条件,如x[‘name’]即用name键对应的值来排序。

你可能感兴趣的:(人工智能,python)