如何迭代列表以使其值作为我在 python 中的嵌套字典

How to iterate over loist to make its values as my nested dict in python

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

我有以下结构:

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}

但我只能通过 {"number":5}:

获取内部指令

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

那么我如何遍历列表对象以转到它们各自的位置?

使用听写理解:

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)

没有听写理解的等价物是:

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}}