如何对Python字典中的数组进行排序?
如何对Python字典中的数组进行排序?
你有如下原始字典:
my_dict = {'A': [5, 2, 1, 6], 'B': [7, 10, 18, 11]}
想要将其修改为每个列表都升序排列的形式:
my_dict = {'A': [1, 2, 5, 6], 'B': [7, 10, 11, 18]}
可以通过以下两种常用方法实现:
方法1:原地修改原字典(使用sort())
list.sort()方法会直接对原列表进行升序排序(原地操作,无返回值),遍历字典的每个键值对即可完成所有列表的排序:
my_dict = {'A': [5, 2, 1, 6], 'B': [7, 10, 18, 11]} for key in my_dict: my_dict[key].sort() # 此时原字典已被修改 print(my_dict)
方法2:生成新字典(使用sorted())
如果你不想改动原字典,可以用sorted()函数——它会返回一个新的排序后的列表,结合字典推导式生成新字典:
my_dict = {'A': [5, 2, 1, 6], 'B': [7, 10, 18, 11]} sorted_dict = {k: sorted(v) for k, v in my_dict.items()} # 原字典保持不变,新字典为排序后的结果 print(sorted_dict)
两种方法的区别
sort():原地修改列表,节省内存,适合不需要保留原列表的场景sorted():返回新列表,原列表不受影响,适合需要保留原始数据的场景
内容的提问来源于stack exchange,提问作者Imran
相关产品推荐
相关产品推荐

