Python嵌套字典构建问题:如何关联企业、年份与销售数据
解决方法
你需要将公司名称、年份列表和对应销售子列表三者按顺序一一关联,而非把销售数据扁平化处理。以下是两种可行的实现方式:
方法一:基于已有company字典更新
先提取公司名称列表(顺序与你定义的company字典一致),再通过索引将每个公司与对应销售数据绑定:
company = {'Honda': {}, 'Toyota': {}, 'Ford': {}} years = ['Year 1', 'Year 2', 'Year 3'] sales = [[55,9,90],[44,22,67],[83,13,91]] # 获取公司名称列表,顺序与sales子列表顺序对应 companies = list(company.keys()) for idx, comp_name in enumerate(companies): # 用zip将年份和对应销售值配对,转成子字典赋值给公司 company[comp_name] = dict(zip(years, sales[idx])) print(company)
方法二:直接生成目标字典(更简洁)
如果不需要保留原空字典结构,可直接用字典推导式一步生成:
years = ['Year 1', 'Year 2', 'Year 3'] sales = [[55,9,90],[44,22,67],[83,13,91]] company_names = ['Honda', 'Toyota', 'Ford'] result = {name: dict(zip(years, data)) for name, data in zip(company_names, sales)} print(result)
关键逻辑说明
zip(years, sales[idx])会把Year 1与55、Year 2与9这类对应元素配对成元组,再通过dict()转成子字典。zip(company_names, sales)则是把每个公司名称和它对应的整组销售数据绑定,确保数据归属正确。
内容的提问来源于stack exchange,提问作者eclipsedlamp
相关产品推荐
相关产品推荐

