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

Python对比嵌套列表、将共享3个及以上URL的关键词分组的实现方法

实现思路与代码示例

第一步:数据结构预处理

首先把所有关键词和对应的URL整理为字典,URL用集合类型存储,方便后续快速计算两个URL列表的交集。

# 示例输入数据,把你自己的关键词和对应URL替换进来即可
keyword_url_map = {
    "关键词A": {"url1", "url2", "url3", "url4", "url5", "url6", "url7", "url8", "url9", "url10"},
    "关键词B": {"url2", "url3", "url4", "url11", "url12", "url13", "url14", "url15", "url16", "url17"},
    "关键词C": {"url3", "url4", "url11", "url18", "url19", "url20", "url21", "url22", "url23", "url24"},
    "关键词D": {"url25", "url26", "url27", "url28", "url29", "url30", "url31", "url32", "url33", "url34"}
}

第二步:聚类逻辑实现

你的需求本质是找连通分量:只要两个关键词满足共享URL≥3的条件,就归为同一组,组内所有关联的关键词都会被聚合到一起。

clusters = []  # 存储最终的分组结果
processed_keywords = set()  # 记录已经被分到组里的关键词,避免重复处理

for keyword in keyword_url_map:
    # 如果当前关键词已经被处理过,直接跳过
    if keyword in processed_keywords:
        continue
    # 新建一个分组,先把当前关键词加进去
    current_cluster = [keyword]
    processed_keywords.add(keyword)
    # 遍历所有还没处理的关键词,判断是否符合加入当前分组的条件
    for other_keyword in keyword_url_map:
        if other_keyword in processed_keywords:
            continue
        # 计算两个关键词URL的交集数量
        common_url_count = len(keyword_url_map[keyword] & keyword_url_map[other_keyword])
        if common_url_count >= 3:
            current_cluster.append(other_keyword)
            processed_keywords.add(other_keyword)
    # 把当前分组合并到最终结果里
    clusters.append(current_cluster)

# 打印最终分组结果
for idx, cluster in enumerate(clusters, 1):
    print(f"分组{idx}: {cluster}")

运行结果说明

以上面的示例输入为例,运行后会输出:

分组1: ['关键词A', '关键词B', '关键词C']
分组2: ['关键词D']

新手注意事项

  • 如果你原来的URL是存在列表里的,转成集合只需要调用set(你的URL列表变量)即可,不需要手动改格式
  • 用集合计算交集的效率远高于遍历列表逐一比对,数据量越大优势越明显
  • 代码已经处理了连锁分组的场景:比如A和B符合条件、B和C符合条件,A、B、C会自动归为同一组,不需要额外写逻辑处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:45:02