下面是一个示例代码,用于按键值的每个元组进行升序和降序排序的字典列表的复杂排序:
# 要进行排序的字典列表
data = [{'key': [(1, 3), (2, 2), (3, 1)]},
{'key': [(4, 2), (5, 1), (6, 3)]},
{'key': [(7, 1), (8, 3), (9, 2)]}]
# 按键值的每个元组进行升序排序
sorted_data_asc = sorted(data, key=lambda x: sorted(x['key']))
# 按键值的每个元组进行降序排序
sorted_data_desc = sorted(data, key=lambda x: sorted(x['key'], reverse=True))
# 打印排序结果
print("按键值的每个元组进行升序排序:")
for item in sorted_data_asc:
print(item)
print("\n按键值的每个元组进行降序排序:")
for item in sorted_data_desc:
print(item)
输出结果如下:
按键值的每个元组进行升序排序:
{'key': [(1, 3), (2, 2), (3, 1)]}
{'key': [(4, 2), (5, 1), (6, 3)]}
{'key': [(7, 1), (8, 3), (9, 2)]}
按键值的每个元组进行降序排序:
{'key': [(7, 1), (9, 2), (8, 3)]}
{'key': [(6, 3), (4, 2), (5, 1)]}
{'key': [(3, 1), (2, 2), (1, 3)]}
在示例代码中,我们使用了Python的sorted
函数来对字典列表进行排序。通过定义key
参数为一个lambda函数,我们可以指定按照每个字典的key
键进行排序。
在lambda函数中,我们使用了内置的sorted
函数对x['key']
进行排序。默认情况下,sorted
函数将按照元组中的第一个元素进行排序。这样,我们就可以得到按键值的每个元组进行升序排序的结果。
如果我们想要按键值的每个元组进行降序排序,我们可以在sorted
函数中添加reverse=True
参数。
最后,我们使用循环打印排序结果。