我没有前进,需要一些帮助(我是编码新手(
我有以下结构:
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}}