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

发布于 2025-01-09 10:39:08 字数 623 浏览 0 评论 0原文

我不会继续前进,需要一些帮助(我是编码新手)

我有以下结构:

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

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

I am not moving forward and need som help (I'm new to coding)

I have the following structure:

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

and a list
sim_list = [1,2,3,4,5]

my result should look like this:

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

my attempt:

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

but i only get inner dicts with {"number":5}:

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

so how can i iterate over the list objects to go to their respective place?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟酒忠诚 2025-01-16 10:39:09

使用字典理解:

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)

Using dict comprehension:

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)

The equivalent without dict comprehension would be:

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

It is also possible to use zip(), to associate each key and item together:

for key, num in zip(sim.keys(), sim_list):
    sim[key] = {"number": num}
print(sim)
触ぅ动初心 2025-01-16 10:39:09

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

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

Or you could build the dictionary from scratch using a dictionary comprehension thus:

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

print(sim)

Output:

{'S1': {'number': 1}, 'S2': {'number': 2}, 'S3': {'number': 3}, 'S4': {'number': 4}, 'S5': {'number': 5}}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文