如何基于键的升序对字典列表进行排序?
实现字典列表按键升序排序
问题场景
现有字典列表:[{'75': '0'}, {'17': '0'}, {'70': '0'}],需要将其按每个字典的键进行升序排序,预期输出:[{'17': '0'}, {'70': '0'}, {'75': '0'}]
解决方案
利用Python内置的sorted()函数,通过自定义排序规则实现:
- 定义原列表:
original_list = [{'75': '0'}, {'17': '0'}, {'70': '0'}]
- 执行排序操作:
sorted_list = sorted(original_list, key=lambda x: int(next(iter(x.keys()))))
代码解释
next(iter(x.keys())):提取每个子字典中唯一的键(因为每个字典仅包含一个键值对)int():将字符串类型的键转换为整数,避免字符串排序的逻辑误差(例如字符串'10'会排在'2'之前的问题)sorted():默认按升序排列,返回排序后的新列表,不会修改原列表
验证结果
打印sorted_list会得到预期输出:
print(sorted_list) # 输出: [{'17': '0'}, {'70': '0'}, {'75': '0'}]
内容的提问来源于stack exchange,提问作者Orion_girl
相关产品推荐
相关产品推荐

