【发布时间】:2021-12-02 05:47:39
【问题描述】:
我有两个列表(l,s)。现在我想创建一个字典,我想将索引值、列表值添加到字典键中,如下所示。
{"value_s": index value of s, "Name_s": value of list s,'value_l': index value of l, 'value_s': value of list s}
假设列表 l 有四个值,s 有两个值,那么根据列表 l 的长度,应该将索引的数量添加到 s。如果 l 的长度为 4,那么 for 循环应该在 value_s 中添加 1 到 4,并且第一次运行时 value_l 应该为 0。为了更好地理解,这可能会造成混淆,请参阅下面的代码和例外输出:-
l = ['a','b','c','d']
s = ['q','w']
以上是两个列表。现在例外的输出是:-
[{'value_s': '0', 'Name_s': 'q', 'value_l': 0, 'Name_l': 'a'},
{'value_s': '0', 'Name_s': 'q', 'value_l': 1, 'Name_l': 'b'},
{'value_s': '0', 'Name_s': 'q', 'value_l': 2, 'Name_l': 'c'},
{'value_s': '0', 'Name_s': 'q', 'value_l': 3, 'Name_l': 'd'},
{'value_s': '1', 'Name_s': 'w', 'value_l': 0, 'Name_l': 'a'},
{'value_s': '1', 'Name_s': 'w', 'value_l': 1, 'Name_l': 'b'},
{'value_s': '1', 'Name_s': 'w', 'value_l': 2, 'Name_l': 'c'},
{'value_s': '1', 'Name_s': 'w', 'value_l': 3, 'Name_l': 'd'},
]
尽管我尝试实现插入索引和值的基本部分。我所做的想法不是一个好方法
f=[]
for idx, val in enumerate(s):
for index, value in enumerate(l):
name = {"value_s":idx, "Name_s": val,'value_l':index, 'value_s':value }
f.append(name)
这给了我:-
[{'value_s': 'a', 'Name_s': 'q', 'value_l': 0},
{'value_s': 'b', 'Name_s': 'q', 'value_l': 1},
{'value_s': 'c', 'Name_s': 'q', 'value_l': 2},
{'value_s': 'd', 'Name_s': 'q', 'value_l': 3},
{'value_s': 'a', 'Name_s': 'w', 'value_l': 0},
{'value_s': 'b', 'Name_s': 'w', 'value_l': 1},
{'value_s': 'c', 'Name_s': 'w', 'value_l': 2},
{'value_s': 'd', 'Name_s': 'w', 'value_l': 3}]
有什么好的方法可以实现异常输出吗?
【问题讨论】:
-
字典键是唯一的。您不能有两个名为“Name_s”的键
-
我认为你需要切换你的两个 for 语句。先迭代l,然后迭代s。是的,name 中的最后一个键应该是 value_l。
标签: python list dictionary for-loop indexing