首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环中的嵌套字典

循环中的嵌套字典
EN

Stack Overflow用户
提问于 2022-04-22 05:00:44
回答 2查看 44关注 0票数 0

在循环遍历三个列表之后,我在创建嵌套字典时遇到了困难:

year=1963,1967制造商=‘捷豹E型’,'MG MGB跑车‘mileage=29382,12357

其目的是:

{经典车1:{汽车:捷豹E型,年份:1963年,里程:29382},经典轿车2:{汽车:MG MGB跑车,年份:1967年,里程:12357}

我该怎么做?

这是我的密码:

代码语言:javascript
复制
def classiccars():
for car in manufacturer:
    classiccar={}
    position=manufacturer.index(car)

    classiccar["Car"]=car
    classiccar["Year"]=year[position]
    classiccar["Mileage"]=mileage[position]

    classiccar_update={}
    classiccar_update[car]=classiccar_update
    print(classiccar_update)
classiccars()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-22 05:11:23

您可以使用zip一次迭代多个值(如果所有参数都具有相同的长度)。

代码语言:javascript
复制
y = {}

for i, car, yr, miles in zip(range(1, len(year)+1), manufacturer, year, mileage):
    y[f"Classic Car {i}"] = {"Car": car, "Year": yr, "Mileage": miles}
代码语言:javascript
复制
>>> y
{'Classic Car 1': {'Car': 'Jaguar E-Type', 'Mileage': 29382, 'Year': 1963},
 'Classic Car 2': {'Car': 'MG MGB Roadster', 'Mileage': 12357, 'Year': 1967}}

或具有理解力:

代码语言:javascript
复制
y = {f"Classic Car {i}": {"Car": car, "Year": yr, "Mileage": miles}
     for i, car, yr, miles in zip(range(1, len(year)+1), manufacturer, year, mileage)}
票数 1
EN

Stack Overflow用户

发布于 2022-04-22 05:18:22

您可以使用字典理解与zip()enumerate()一起生成所需的键值对:

代码语言:javascript
复制
{f"Classic_Car_{idx}": dict(zip(['Car', 'Year', 'Mileage'], values))
   for idx, values in enumerate(zip(manufacturer, year, mileage), start=1)}

这一产出如下:

代码语言:javascript
复制
{
 'Classic_Car_1': {'Car': 'Jaguar E-Type', 'Year': 1963, 'Mileage': 29382},
 'Classic_Car_2': {'Car': 'MG MGB Roadster', 'Year': 1967, 'Mileage': 12357}
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71963658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档