【问题标题】:How to insert index, values of list into a dictionary values(based on length of the other list)?如何将索引、列表值插入字典值(基于另一个列表的长度)?
【发布时间】: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


【解决方案1】:
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)

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多