本文共 1319 字,大约阅读时间需要 4 分钟。
无序字典按照key自定义排序
在Python中,对无序字典按照自定义顺序进行排序,可以通过以下方法实现。以下示例展示了如何根据指定的sort_order列表对字典进行排序。
示例代码如下:
test_dict = {'1': '小明', '3': '小红', '2': '小张'}sort_order = ['1', '2', '3', '>3']for key in test_dict: if key not in sort_order: sort_order.append(key)allsites_ordered = OrderedDict(sorted(test_dict.items(), key=lambda item: sort_order.index(item[0])))print(test_dict)print(allsites_ordered) 输出结果如下:
{'1': '小明', '3': '小红', '2': '小张'}OrderedDict([('1', '小明'), ('2', '小张'), ('3', '小红')]) 字典列表按照自定义value排序
对于字典列表,按照自定义的value排序可以参考以下方法。以下示例展示了如何根据指定的value排序顺序对字典列表进行排序。
示例代码如下:
test_dict_list = [ {'语文': '小明', '数学': '小红', '英语': '小张'}, {'数学': '小明', '语文': '小红', '英语': '小张'}, {'英语': '小明', '数学': '小红', '语文': '小张'}]value_sort = ['小明', '小张']for temp_dic in test_dict_list: for key, value in temp_dic.items(): if key == '英语' and value not in value_sort: value_sort.append(value)res_list = sorted(test_dict_list, key=lambda x: value_sort.index(x['英语']))print(test_dict_list)print(res_list) 输出结果如下:
[ {'语文': '小明', '数学': '小红', '英语': '小张'}, {'数学': '小明', '语文': '小红', '英语': '小张'}, {'英语': '小明', '数学': '小红', '语文': '小张'}][ {'英语': '小明', '数学': '小红', '语文': '小张'}, {'语文': '小明', '数学': '小红', '英语': '小张'}, {'数学': '小明', '语文': '小红', '英语': '小张'}] 以上代码展示了如何对无序字典和字典列表进行自定义排序,具体按照key或value的自定义顺序进行排序。
转载地址:http://miofk.baihongyu.com/