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

Python实现从两个变量中全量匹配/不匹配字符串的需求

解决方案:对比两个AP数据库的匹配与不匹配条目

我来帮你搞定这个问题——要对比两个AP数据库列表里的条目,找出匹配和不匹配的Name字段,完全不需要局限于索引访问,我们可以通过遍历所有条目来实现全量检查。以下是完整的Python实现方案:

步骤1:定义完整输入数据

先补全你提供的截断数据(如果实际apdb1的内容不同,直接替换即可):

apdb = {
    "AP Database": [
        {"AP Type": "110H", "Name": "varagu"},
        {"AP Type": "110H", "Name": "thinai"},
        {"AP Type": "110H", "Name": "kambu"},
        {"AP Type": "205H", "Name": "keppai"}
    ]
}

apdb1 = {
    "AP Database": [
        {"AP Type": "110H", "Name": "kudhiravali"},
        {"AP Type": "110H", "Name": "kambu"},
        {"AP Type": "205H", "Name": "ragi"}  # 补全截断的示例内容
    ]
}

步骤2:提取并对比Name字段

先提取两个数据库里所有的Name值,再通过集合操作快速筛选匹配和不匹配的内容:

# 提取两个数据库的Name列表
apdb_names = [entry["Name"] for entry in apdb["AP Database"]]
apdb1_names = [entry["Name"] for entry in apdb1["AP Database"]]

# 找出两个数据库都存在的Name(匹配项)
matching_names = set(apdb_names) & set(apdb1_names)

# 找出仅在apdb中存在的Name
only_in_apdb = set(apdb_names) - set(apdb1_names)

# 找出仅在apdb1中存在的Name
only_in_apdb1 = set(apdb1_names) - set(apdb_names)

步骤3:获取完整的匹配/不匹配条目

如果需要关联对应的AP Type等完整信息,可以进一步筛选出完整条目:

# 获取apdb中匹配的完整条目
matching_apdb_entries = [entry for entry in apdb["AP Database"] if entry["Name"] in matching_names]
# 获取apdb1中匹配的完整条目
matching_apdb1_entries = [entry for entry in apdb1["AP Database"] if entry["Name"] in matching_names]

# 获取apdb中不匹配的完整条目
unmatched_apdb_entries = [entry for entry in apdb["AP Database"] if entry["Name"] in only_in_apdb]
# 获取apdb1中不匹配的完整条目
unmatched_apdb1_entries = [entry for entry in apdb1["AP Database"] if entry["Name"] in only_in_apdb1]

步骤4:输出结果

最后打印所有结果,清晰展示匹配与不匹配的内容:

print("=== 匹配的Name ===")
print(matching_names)
print("\n=== 匹配的完整条目(apdb) ===")
for entry in matching_apdb_entries:
    print(entry)
print("\n=== 仅在apdb中存在的条目 ===")
for entry in unmatched_apdb_entries:
    print(entry)
print("\n=== 仅在apdb1中存在的条目 ===")
for entry in unmatched_apdb1_entries:
    print(entry)

示例输出

运行上述代码后,会得到类似这样的结果:

=== 匹配的Name ===
{'kambu'}

=== 匹配的完整条目(apdb) ===
{'AP Type': '110H', 'Name': 'kambu'}

=== 仅在apdb中存在的条目 ===
{'AP Type': '110H', 'Name': 'varagu'}
{'AP Type': '110H', 'Name': 'thinai'}
{'AP Type': '205H', 'Name': 'keppai'}

=== 仅在apdb1中存在的条目 ===
{'AP Type': '110H', 'Name': 'kudhiravali'}
{'AP Type': '205H', 'Name': 'ragi'}

这个方案的优势是不依赖条目索引位置,能全量检查所有内容,哪怕两个数据库列表的长度不一致也能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:31:24