如何将字典中作为值的列表元素按降序排序?
字典值列表的降序排序方法
先看你给出的原字典:
my_Dict = {'item1': [7, 1, 9], 'item2': [8, 2, 3], 'item3': [9, 3, 11] }
方法一:原地修改原字典
直接对每个列表做原地降序排序,会改动原字典里的列表内容。用列表的sort()方法,搭配reverse=True参数就能实现降序:
for lst in my_Dict.values(): lst.sort(reverse=True) # 执行后原字典变为: # {'item1': [9, 7, 1], 'item2': [8, 3, 2], 'item3': [11, 9, 3]}
方法二:生成新字典(保留原数据)
如果不想改动原字典,用sorted()函数生成排序后的新列表,再通过字典推导式创建新字典:
sorted_dict = {key: sorted(lst, reverse=True) for key, lst in my_Dict.items()} # 新字典内容: # {'item1': [9, 7, 1], 'item2': [8, 3, 2], 'item3': [11, 9, 3]} # 原my_Dict的列表不会被修改
两者的区别:sort()是原地操作,省内存但会改变原数据;sorted()返回新列表,原数据保持不变,适合需要保留原始数据的场景。
内容的提问来源于stack exchange,提问作者Retsi
相关产品推荐
相关产品推荐

