如何对loist进行迭代,使其值成为我在python中的嵌套dict



我没有前进,需要一些帮助(我是编码新手(

我有以下结构:

sim = {'S1': {}, 'S2': {}, 'S3': {}, 'S4': {}, 'S5': {}}

和一个列表sim_list = [1,2,3,4,5]

我的结果应该是这样的:

sim = {'S1': {"number": 1}, 'S2': {"number": 2}, 'S3': {"number": 3}, 'S4': {"number": 4}, 'S5': {"number": 5}}

我的尝试:

for key in sim.keys():
for i in sim_list:
sim[key]= {"number":i}

但我只得到{"数字":5}的内部dict:

sim = {'S1': {"number": 5}, 'S2': {"number": 5}, 'S3': {"number": 5}, 'S4': {"number": 5}, 'S5': {"number": 5}}

那么,我如何迭代列表对象以到达它们各自的位置呢?

使用dict理解:

sim = {'S1': {}, 'S2': {}, 'S3': {}, 'S4': {}, 'S5': {}}
sim_list = [1, 2, 3, 4, 5]
output = {list(sim)[i]: {"number": sim_list[i]} for i in range(len(sim))}
print(output)

没有dict理解的等价物是:

output = {}
for i in range(len(sim)):
output[list(sim)[i]] = {"number": sim_list[i] }
print(output)

也可以使用zip()将每个密钥和项目关联在一起:

for key, num in zip(sim.keys(), sim_list):
sim[key] = {"number": num}
print(sim)

或者您可以使用字典理解从头开始构建字典,因此:

sim = {f'S{i}': {'number': i} for i in range(1, 6)}
print(sim)

输出:

{'S1': {'number': 1}, 'S2': {'number': 2}, 'S3': {'number': 3}, 'S4': {'number': 4}, 'S5': {'number': 5}}

最新更新