字典排序 按字典值排序(默认为升序) 使用operator 库 : import operatorx = {1: 2, 3: 4, 5: 6, 2: 1, 0: 0}sorted_x = sorted(x.items(), key=operator.itemgetter(1))print(sorted_x) # 返回: [(0, 0), (2, 1), (1, 2), (3, 4)
字典排序
按字典值排序(默认为升序)
使用operator 库 :
import operator x = {1: 2, 3: 4, 5: 6, 2: 1, 0: 0} sorted_x = sorted(x.items(), key=operator.itemgetter(1)) print(sorted_x) > # 返回: [(0, 0), (2, 1), (1, 2), (3, 4), (5, 6)]降序
import operator x = {1: 2, 3: 4, 5: 6, 2: 1, 0: 0} sorted_x = sorted(x.items(), key=operator.itemgetter(1), reverse=True) print(sorted_x) > # 返回:[(5, 6), (3, 4), (1, 2), (2, 1), (0, 0)]lambda
语法(python3):sorted(iterable, key=None,reverse=False)参数说明:iterable:可迭代对象,即可以用for循环进行迭代的对象;key:主要是用来进行比较的元素,只有一个参数,具体的函数参数取自于可迭代对象中,用来指定可迭代对象中的一个元素来进行排序;reverse:排序规则,reverse=False升序(默认),reverse=True降序。
x = {"d": 2, "a": 4, "x": 6, "h": 1, "z": 0} # 按照字典的值进行升序 sorted_x = sorted(x.items(), key=lambda x: x[1]) print('按值排序后结果', sorted_x) # 按照字典的键进行升序 sorted_x = sorted(x.items(), key=lambda x: x[0]) print('按键排序后结果', sorted_x) > # 返回: # 按值排序后结果 [(0, 0), (2, 1), (1, 2), (3, 4), (5, 6)] # 按键排序后结果 [('a', 4), ('d', 2), ('h', 1), ('x', 6), ('z', 0)]原理:以 x.items() 返回的列表 [{"d": 2, "a": 4, "x": 6, "h": 1, "z": 0}] 中的每一个元素,作为匿名函数(lambda)的参数,x[0]即用“键”排序,x[1]即用“值”排序;返回结果为新的列表,可以通过dict()函数转为字典格式。
列表中的字典排序
operator
import operator x = [{'name': "Homer", 'age': 39}, {'name': 'Bart', 'age': 10}] # 按照指定键升序 sorted_x = sorted(x, key=operator.itemgetter('name')) print('按照指定键升序结果', sorted_x) > # 返回: # 按照指定键升序结果 [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]lambda 方法
x = [{'name': "Homer", 'age': 39}, {'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 20}] # 按照指定键升序 sorted_x = sorted(x, key=lambda x: x['name']) sorted_b = sorted(x, key=lambda x: x['age']) sorted_c = sorted(x, key=lambda x: (x['name'], x['age'])) print('按照 name 升序结果', sorted_x) print('按照 age 升序结果', sorted_x) print('name 相同则按照 age 升序结果', sorted_x) > # 返回: # 按照 name 升序结果 [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}, {'name': 'Homer', 'age': 20}] # 按照 age 升序结果 [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}, {'name': 'Homer', 'age': 20}] # name 相同则按照 age 升序结果 [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}, {'name': 'Homer', 'age': 20}]原理:以列表 x 里面的每一个字典元素作为匿名函数的参数,然后根据需要用键取字典里面的元素作为排序的条件,如 x['name'] 即用 name键 对应的值来排序。
【本文来源:美国服务器 https://www.68idc.cn 复制请保留原URL】