我有一个这样的字典设置:
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
我似乎无法完全理解如何构建一个将所有内容联系在一起的最终词典。
任何帮助都是感激的!
您可以对zip
使用字典推导式。
res = {k : dict(zip(years, sale)) for k, sale in zip(company, sales)}
您可以使用zip
将相应的信息配对在一起。首先,用sales
中的值压缩品牌名称。接下来,用特定品牌的销售数字压缩years
。
company = {brand: dict(zip(years, sales_nums))
for brand, sales_nums in zip(["Honda", "Toyota", "Ford"], sales)}
您可以使用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