我有一个嵌套列表,我想将列表项与字典键进行比较,如果找到匹配项,则应将相应的字典值求和并作为新的键值对附加到同一个字典中
l1 = [['a','b'], ['c','d']]
dict1 = {'a':10, 'e':20, 'c':30, 'b':40}
预期结果:
dict1 = {'a':10, 'e':20, 'c':30, 'b':40, 'a+b':50, 'a+c':40, 'b+c':70}
到目前为止我所做的:
for x in range(len(l1)):
for y in range(len(l1[x])):
for k in dict1.keys():
if k == l1[x][y]:
dict1.append(dict1[k])
在不使用嵌套for循环的情况下,有没有办法做到这一点? 附:代码还没有完成
您可以尝试下面的代码
假设嵌套列表不重要,例如}
l1
可以更改为["a", "b", "c", d"]
,您可以在此处使用^{首先用
itertools.chain
展平l1
(或
l2 = itertools.chain.from_iterable(l1)
)然后遍历两个元素的所有组合
全部
dict1
现在将相等类似于以下内容,使用生成器:
注意:OP如果你不澄清这个问题,我会删除这个
相关问题 更多 >
编程相关推荐