如何将列表的索引值插入字典值(基于其他列表的长度)?



我有两个列表(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}

假设列表1有4个值,列表s有2个值,那么根据列表1的长度,索引的个数应该加到列表s中。如果列表1的长度是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}]

有什么好的方法可以达到预期的输出吗?

l = ['a','b','c','d']
s = ['q','w']
f=[]
for idx, val in enumerate(l):
for index, value in  enumerate(s):
name = { "value_s":index, "Name_s": value, 'value_l':idx, 'name_l':val }
f.append(name)
print(f)

最新更新