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

识别Ansible字典中值含重复元素的键值对并筛选输出

解决方案

实现逻辑

  • 先统计所有元素在全部值列表中的出现总次数
  • 遍历原字典筛选键值对:只要当前值列表中存在至少一个元素出现次数大于1(即与其他列表有公共元素),就保留该键值对,否则移除

代码实现(使用Python标准库Counter,简洁易读)

from collections import Counter

Ip = {'a':['one','two','three'],'b':['one','five','six'],'c':['seven','eight','nine'],'d':['five']}

# 统计所有元素的全局出现次数
all_elements = []
for val_list in Ip.values():
    all_elements.extend(val_list)
elem_counter = Counter(all_elements)

# 筛选符合要求的键值对
Op = {
    key: val_list
    for key, val_list in Ip.items()
    if any(elem_counter[elem] > 1 for elem in val_list)
}

print(Op)

运行输出:

{'a': ['one', 'two', 'three'], 'b': ['one', 'five', 'six'], 'd': ['five']}

无导入依赖版本

如果不想导入任何库,也可以手动实现计数逻辑,效果完全一致:

Ip = {'a':['one','two','three'],'b':['one','five','six'],'c':['seven','eight','nine'],'d':['five']}

# 手动统计元素出现次数
elem_count = {}
for val_list in Ip.values():
    for elem in val_list:
        elem_count[elem] = elem_count.get(elem, 0) + 1

# 筛选键值对
Op = {k: v for k, v in Ip.items() if any(elem_count[e] > 1 for e in v)}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:33:04