【问题标题】:Replace a value in a multivalue dictionary list with another dictionary of same key用另一个具有相同键的字典替换多值字典列表中的值
【发布时间】:2017-08-14 01:59:59
【问题描述】:

我是 python 新手,我一直在寻找是否可以找到类似的方法来执行此操作,但是它们太长了,只需要一种简单的方法来执行此操作。

我正在尝试找到如何将多值字典中的 0 值替换为另一个具有相同键的字典的值。我想避免使用索引,因为值可能会发生变化,并且还会对输出进行进一步的计算。

mydict = {'A': [20, 0, 15], 'B': [0, 5, 0], 'C': [15, 10, 10]}
mydict2 = {'A': 5, 'B': 3, 'C': 1}

output = {'A': [20, 5, 15], 'B': [3, 5, 3], 'C': [15, 10, 10]}

谢谢!!

更新:mydict2 实际上是一个嵌套列表(lst),我尝试使用

d2 = dict((x['key'], x['val']) for x in mydict) lst = [d2[x] for x in lst] 打印d2

错误:字符串索引必须是整数,而不是 str。

【问题讨论】:

  • 请出示您的代码。
  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask

标签: python python-2.7 list dictionary


【解决方案1】:

您可以使用嵌套列表和字典理解以及对 0 值的小测试:

{key: [x if x!=0 else mydict2[key] for x in vals] for key, vals in mydict.iteritems()}

【讨论】:

  • 谢谢你成功了!!我不知道你可以像这样进行字典理解。
猜你喜欢
  • 2016-04-14
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
相关资源
最近更新 更多