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

如何将爬虫输出的品牌产品列表转为品牌为键的字典并追加值

把品牌-产品列表转换为分组字典的几种方法

嘿,这个需求在数据整理里太常见了!我给你分享几个实用的Python实现方式,轻松把两个列表转成你想要的字典格式。

方法1:基础循环(新手友好,逻辑清晰)

这是最直观的写法,适合刚接触Python的同学理解整个过程:

brands = ["a", "b", "c", "a", "a", "b"]
products = [1, 2, 3, 4, 5, 6]

# 初始化空字典
product_dict = {}

# 同时遍历品牌和产品列表(用zip配对元素)
for brand, product in zip(brands, products):
    # 如果品牌已经在字典里,就追加产品到列表
    if brand in product_dict:
        product_dict[brand].append(product)
    # 否则创建新的键,值为包含当前产品的列表
    else:
        product_dict[brand] = [product]

print(product_dict)
# 输出结果: {'a': [1, 4, 5], 'b': [2, 6], 'c': [3]}

方法2:用collections.defaultdict(简洁高效)

如果你想让代码更简洁,Python标准库的defaultdict能帮你省去判断键是否存在的步骤——它会自动为不存在的键创建一个空列表:

from collections import defaultdict

brands = ["a", "b", "c", "a", "a", "b"]
products = [1, 2, 3, 4, 5, 6]

# 初始化默认值为列表的字典
product_dict = defaultdict(list)

for brand, product in zip(brands, products):
    # 直接追加就行,不用判断键是否存在
    product_dict[brand].append(product)

# 可选:如果需要转换成普通字典(不是必须的,defaultdict本身也能正常使用)
product_dict = dict(product_dict)

print(product_dict)
# 输出结果和上面一致

小提示

  • 确保brands和products两个列表的长度一致哦,zip()会以较短的列表为准截断数据。如果爬虫返回的列表长度不一致,得先排查下爬虫的抓取逻辑是不是哪里出问题了~
  • 要是你用的是Python 3.9+,还可以用字典的|=运算符配合列表推导,但上面两种方法已经足够实用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:36:54