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

如何修改Python代码去除重复链及与主机重复的链并优化输出

代理链去重(保留权重)的代码修改方案

1. 处理连续重复的链条节点

在生成单条代理链的逻辑后,加入连续节点去重的步骤——遍历链条时只保留与上一个节点不同的元素,避免连续重复。

示例代码片段:

def clean_continuous_duplicates(chain):
    cleaned = []
    last_node = None
    for node in chain:
        if node != last_node:
            cleaned.append(node)
            last_node = node
    return cleaned

把这个函数插入到每条代理链生成完成后、加入结果集之前的位置,对生成的原始链做清洗。

2. 过滤与CORE主机链重复的条目

先定义CORE链的基准值,再在收集结果时,跳过和基准链完全一致的清洗后链条,同时保留其余链条的权重。

示例代码片段:

# 假设你的CORE主机链是这个结构
CORE_BASE_CHAIN = ["节点1", "节点2", "CORE"]

# 假设generated_chains是你原有代码生成的(链条, 权重)列表
final_result = []
for raw_chain, weight in generated_chains:
    cleaned_chain = clean_continuous_duplicates(raw_chain)
    # 跳过与CORE链完全重复的条目
    if cleaned_chain != CORE_BASE_CHAIN:
        final_result.append( (cleaned_chain, weight) )

3. 可选:合并重复链条的权重

如果清洗后出现多条完全一致的链条,可以合并它们的权重值,进一步精简输出:

weight_counter = {}
for chain, weight in final_result:
    # 列表无法作为字典键,转成元组
    chain_key = tuple(chain)
    if chain_key in weight_counter:
        weight_counter[chain_key] += weight
    else:
        weight_counter[chain_key] = weight

# 转回列表格式输出
merged_result = [ (list(chain), total_weight) for chain, total_weight in weight_counter.items() ]

修改位置参考

  • 若你是逐一生成单条链:在每条链生成的代码块末尾,调用清洗函数,再判断是否跳过CORE链,最后加入结果集。
  • 若你是批量生成所有链后统一处理:在所有链生成完成后,先批量做连续节点清洗,再过滤CORE链,最后按需合并权重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:04:59