Python中对字典排序:要求AA排在Z之后
实现自定义规则的字典排序需求
可以实现这个排序需求,Python的排序工具支持通过自定义key函数调整排序逻辑,让指定键处于特定位置。
具体实现方法
利用sorted()函数的key参数,对特殊键做映射处理,改变它的排序权重:
mydict = { 'Column A':'test', 'Column S': 'NORMAL', 'Column C': 'test', 'Column AA': 'non-Gurantee', 'Column Z': 'SAMPLE', 'Column F': 'STANDARD' } # 自定义排序规则:让'Column AA'的排序key等价于'Column ZZ',确保排在'Column Z'之后 def custom_sort_key(item): key_name = item[0] return 'Column ZZ' if key_name == 'Column AA' else key_name # 按自定义规则排序键值对 sorted_pairs = sorted(mydict.items(), key=custom_sort_key) # 转换为有序字典(Python 3.7+ 普通字典会保留插入顺序) sorted_dict = dict(sorted_pairs) # 输出结果验证 for k, v in sorted_dict.items(): print(f"{k}: {v}")
效果说明
运行上述代码后,输出的有序字典中,Column AA会排在Column Z之后,其余键则按常规字母顺序排列。核心逻辑是通过修改特殊键的排序基准,让它在排序时的"权重"比Column Z更高,从而被放到后面。
内容的提问来源于stack exchange,提问作者nattik
相关产品推荐
相关产品推荐

