【问题标题】:Nested Dictionary Creation - Python嵌套字典创建 - Python
【发布时间】:2023-01-18 23:03:22
【问题描述】:

我有这样的字典设置:

company = {'Honda': {}
 ,'Toyota':{}
 ,'Ford':{}
}

我有一个包含如下数据的列表:

years = ['Year 1', 'Year 2', 'Year 3']

最后,我还有一个包含如下数据的列表列表:

sales = [[55,9,90],[44,22,67],[83,13,91]]

我正在尝试实现如下所示的最终结果:

{'Honda': {'Year 1':55,'Year 2':9,'Year 3':90}
 ,'Toyota':{'Year 1':44,'Year 2':22,'Year 3':67}
 ,'Ford':{'Year 1':83,'Year 2':13,'Year 3':91}
}

如果这样的销售,我可以访问子列表:

for i in sales:
    for j in i:
        #this would give me a flat list of all sales

我似乎无法全神贯注地构建将所有内容联系在一起的最终词典。

任何帮助表示赞赏!

【问题讨论】:

    标签: python dictionary nested


    【解决方案1】:

    您可以使用 zip 的字典理解。

    res = {k : dict(zip(years, sale)) for k, sale in zip(company, sales)}
    

    【讨论】:

      【解决方案2】:

      您可以使用zip将相应的信息配对在一起。首先,使用sales 中的值压缩品牌名称。接下来,将特定品牌的销售数字压缩到years

      company = {brand: dict(zip(years, sales_nums)) 
                for brand, sales_nums in zip(["Honda", "Toyota", "Ford"], sales)}
      

      【讨论】:

        【解决方案3】:

        您可以使用 zip 和双 for 循环来压缩所有 3 个列表。给你:

        final_dict = {}
            for i, (name, sub_dict) in enumerate(company.items()):
                for year, sale in zip(years, sales[i]):
                    sub_dict[year] = sale
                final_dict[name] = sub_dict
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-22
          • 1970-01-01
          相关资源
          最近更新 更多