You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中对字典执行分区操作?

Python字典的高效分区方案

很多编程语言的标准库都支持字典或映射类型的分区操作——把一个字典按指定条件拆成两个独立的字典。比如Rust里的split_off,C++的map有lower_bound/upper_bound,还有std::algorithm里的partition。但Python标准库没有直接提供这个操作,你之前用两次字典推导式的方法确实存在问题:要遍历原字典两次,条件写两遍不仅冗余,还容易因为修改一边忘了改另一边而出错。

下面是几种更优的实现方案:

1. 单次遍历手动拆分(最直观高效)

直接遍历原字典一次,根据条件把键值对分配到两个新字典里,只判断一次条件,避免重复计算:

# 示例字典
my_map = {"a": 1, "b": 2, "c": 3, "d": 4}
# 自定义分区条件(这里以键小于"c"为例)
def condition(key, value):
    return key < "c"

part1 = {}
part2 = {}
for key, value in my_map.items():
    if condition(key, value):
        part1[key] = value
    else:
        part2[key] = value

2. 封装成复用函数

如果需要多次使用分区操作,可以把逻辑封装成函数,方便调用:

def partition_dict(source_dict, condition):
    part_match = {}
    part_no_match = {}
    for k, v in source_dict.items():
        target = part_match if condition(k, v) else part_no_match
        target[k] = v
    return part_match, part_no_match

# 使用示例
my_map = {"a": 1, "b": 2, "c": 3, "d": 4}
map_part1, map_part2 = partition_dict(my_map, lambda k, v: k < "c")

方案优势

  • 只遍历原字典一次,时间效率比两次推导式高(尤其是字典元素较多时)
  • 条件表达式只写一次,避免重复代码,降低维护时的出错概率
  • 逻辑清晰,可读性强,不需要依赖额外库

内容的提问来源于stack exchange,提问作者user2138149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:12:12