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

如何比对四组列表并提取匹配对应的value_search值?

解决方案

核心思路

先把brand_search和value_search构建成品牌-值的映射字典,快速通过品牌名匹配对应value;再遍历brand和search_type的配对组合,提取目标值并按指定规则截取。

代码实现

brand = ["brand_1", "brand_2"]
search_type = [4, 10]

brand_search = ["brand_1", "brand_2","brand_3"]
value_search = ["value1", "value_2","value_3"]

# 构建品牌与对应值的映射字典
brand_value_map = dict(zip(brand_search, value_search))

processed_results = []
# 遍历每个品牌和对应的截取长度
for target_brand, cut_length in zip(brand, search_type):
    if target_brand in brand_value_map:
        raw_value = brand_value_map[target_brand]
        # 按指定长度截取(示例取前cut_length个字符,可按需修改截取逻辑)
        trimmed_value = raw_value[:cut_length]
        processed_results.append((target_brand, trimmed_value))
    else:
        # 处理品牌未匹配到的情况
        processed_results.append((target_brand, None))

# 输出结果
for brand_name, value in processed_results:
    print(f"{brand_name}: {value}")

代码说明

  1. 映射字典构建:dict(zip(brand_search, value_search))将两个列表对应位置的元素组成键值对,查找效率远高于循环遍历列表找索引。
  2. 配对遍历:zip(brand, search_type)确保每个品牌和对应的截取规则一一对应,避免索引错位问题。
  3. 截取逻辑:示例中用raw_value[:cut_length]实现按长度截取,若你的需求是按分隔符或其他规则截取,直接替换这部分代码即可。

备选方案(无字典实现)

如果不想用字典,也可以通过索引匹配实现(适合小规模列表场景):

processed_results = []
for i in range(len(brand)):
    target_brand = brand[i]
    cut_length = search_type[i]
    try:
        # 获取目标品牌在brand_search中的索引
        brand_index = brand_search.index(target_brand)
        raw_value = value_search[brand_index]
        trimmed_value = raw_value[:cut_length]
        processed_results.append((target_brand, trimmed_value))
    except ValueError:
        # 品牌未找到时返回None
        processed_results.append((target_brand, None))

内容的提问来源于stack exchange,提问作者Antônio Miranda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:48:15