2024-03-29 05:01:02 发布
网友
我有两本词典:
dic1 = {'a' : [3, 4, 5], 'b' : [0, 1, 2]} dic2 = {'a' : [3, 4, 5], 'b' : [8, 1, 2, 30], 'c' : [9, 8, 2]}
想要第三本词典只有第二本词典的内容而没有第一本词典的内容:
dic3 = {'b' : [8, 30], 'c' : [9, 8, 2]}
在python2.7及以下版本中,最具python风格的方法是什么?你知道吗
2.7
您可以使用dict理解来迭代dic2的项,以使用set difference构建到相同键的dic2和dic1列表之间的差异的新映射,同时过滤出两个dict中具有相同列表值的键:
dic2
dic1
{k: list(set(l).difference(dic1.get(k, []))) for k, l in dic2.items() if dic1.get(k) != l}
这将返回:
{'b': [8, 30], 'c': [8, 9, 2]}
(没有听写理解)
您可以使用difference对象上可用的set:
difference
set
dic1 = {'a' : [3, 4, 5], 'b' : [0, 1, 2]} dic2 = {'a' : [3, 4, 5], 'b' : [8, 1, 2, 30], 'c' : [9, 8, 2]} for k, v in dic2.items(): if k in dic1.keys(): new_v = list(set(v).difference(dic1[k])) if len(new_v) > 0: dic3[k] = new_v else: dic3[k] = v
这将提供所需的输出。你知道吗
如果dic2的任何键在dic1中不存在,或者任何键对应的值在两个字典中都不同,则将该键、值对添加到另一个字典中。你知道吗
for k in dic2.keys(): if (k not in dic1.keys()) or (dic1[k] != dic2[k]): dic3[k] = dic2[k]
您可以使用dict理解来迭代
dic2
的项,以使用set difference构建到相同键的dic2
和dic1
列表之间的差异的新映射,同时过滤出两个dict中具有相同列表值的键:这将返回:
(没有听写理解)
您可以使用
difference
对象上可用的set
:这将提供所需的输出。你知道吗
如果
dic2
的任何键在dic1
中不存在,或者任何键对应的值在两个字典中都不同,则将该键、值对添加到另一个字典中。你知道吗相关问题 更多 >
编程相关推荐