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

大数据量下Python同住宅男女匹配的性能优化方案咨询

高效解决方案分析与实现

问题根源

原方案的性能瓶颈在于第二次循环中对每个符合条件的男性,都要遍历整个women列表执行filter匹配,时间复杂度为O(K*N)(K是men_new的长度,N是women的总长度),大数据量下会导致极慢的运行速度。

优化思路

利用哈希表(Python字典)的O(1)查找特性,预先将women列表中的对象以**(行政区, 房屋编号)**作为唯一键存入字典,之后筛选男性时可直接通过键快速匹配对应女性,将整体时间复杂度降至O(M+N)(M是men的长度,N是women的长度)。

实现代码

# 假设列表"men"、"women"及变量"min_age"已预先定义
men_new = []
women_new = []

# 第一步:构建女性匹配字典,键为(district, house_number)
women_map = {(woman.district, woman.house_number): woman for woman in women}

# 第二步:筛选男性并同时匹配女性
for man in men:
    if man.age > min_age:
        men_new.append(man)
        # 通过字典直接获取对应女性(题目说明每套住宅住1男1女,故必有匹配)
        women_new.append(women_map[(man.district, man.house_number)])

额外说明

  • 若存在数据异常(比如部分男性无对应女性),可改用get方法做容错处理:women_map.get((man.district, man.house_number), None)
  • 字典构建仅需遍历women一次,后续匹配均为常数时间操作,相比原方案性能提升量级显著,尤其适合百万级以上数据量场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:26:13