Python中对二维数组及嵌套字典进行排序(sorted和lambda的组合)

发布时间 2023-09-21 21:08:07作者: 勾影变形计

一、对数组进行排序

# coding=utf-8
# 对二维数组-嵌套字典进行排序
lista = [{"a": 10}, {"a": 5}, {"a": 8}]
# 根据嵌套字典的键进行排序-降序
list1 = sorted(lista, key=lambda x: x['a'], reverse=True)
# 升序
# list1 = sorted(lista, key=lambda x: x['a'])
print(list1)

# 对二维数组-嵌套元组进行排序
listb = [("a", 10), ("b", 5), ("c", 8)]
# 降序
list2 = sorted(listb, key=lambda x: x[1], reverse=True)
# 升序
# list2 = sorted(listb, key=lambda x: x[1])
print(list2)

# 对二维数组-嵌套列表进行排序
listc = [["a", 10], ["b", 5], ["c", 8]]
# 降序
list3 = sorted(listc, key=lambda x: x[1], reverse=True)
# 升序
# list3 = sorted(listc, key=lambda x: x[1])
print(list3)

 

二、对字典进行排序

# coding=utf-8
"""
items()是字典(dictionary)对象的一个方法,用于返回字典中的键值对。
它的作用是将字典的键和对应的值以元组的形式打包成一个可迭代对象,方便我们进行遍历和操作。
"""
# 字典内嵌套列表
dic = {"a1": ["a", 10], "b1": ["b", 5], "c1": ["c", 8]}
# 降序--x[1]按照值排序,x[0]按照键排序
list_dic = sorted(dic.items(), key=lambda x: x[1][1], reverse=True)
# 升序
# list_dic = sorted(dic.items(), key=lambda x: x[1][1])
print(list_dic)

# 字典内嵌套字典
dic1 = {"a1": {"a": 10}, "b1": {"b": 5}, "c1": {"c": 8}}
# 按照键排序
list_dic1 = sorted(dic1.items(), key=lambda x: x[0], reverse=True)
# list_dic1 = sorted(dic1.items(), key=lambda x: x[0])
print(list_dic1)

d = {'apple': {'price': 10, 'quantity': 8},
'banana': {'price': 3, 'quantity': 10},
'orange': {'price': 6, 'quantity': 12},
'pear': {'price': 4, 'quantity': 6}}

#按照键排序
sorted_d1 = sorted(d.items(), key=lambda x: x[0])
print(sorted_d1)

#按照价格排序
sorted_d2 = sorted(d.items(), key=lambda x: x[1]['price'])
print(sorted_d2)

#按照库存排序
sorted_d3 = sorted(d.items(), key=lambda x: x[1]['quantity'])
print(sorted_d3)