2024-04-26 09:38:52 发布
网友
我想知道如何合并两个词典来创建一个新词典。假设我有两本字典:
a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'}
我想创建第三个字典,使用包含在a和b中的键,但是我希望值来自dict a。所以它看起来像这样:
c = {'aa' : 'aaa', 'bb' : 'bbb'}
有人能帮我吗?你知道吗
对于python2,只需使用dict.viewkeys找到dict键的交集:
查看和其他
Return the intersection of the dictview and the other object as a new set.
a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'} print({k:a[k] for k in a.viewkeys() & b}) {'aa': 'aaa', 'bb': 'bbb'}
对于python3,只需使用返回dictview对象的.keys:
a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'} print({k: a[k] for k in a.keys() & b}) {'aa': 'aaa', 'bb': 'bbb'}
使所有的键唯一,你就不会有问题的新字典更新从字典a到字典b的键。你必须使所有的键唯一,但如果不是那么看下面的代码,我添加一个1的关键字名称,使其唯一。你知道吗
a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'} c = a.copy() count = 0 for k, v in b.items(): if a.has_key(k): while True: count += 1 if c.has_key(k+str(count)): pass else: c[k+str(count)]=v count = 0 break else: c[k]=v print c {'aa': 'aaa', 'bb': 'bbb', 'cc': 'ccc', 'dd': '444', 'ee': '555', 'aa1': '111', 'bb1': '222'}
在python3.x中,我将获取dict.keys()并对它们执行&(交集),以获取公共键,然后从a获取值。示例-
dict.keys()
&
a
a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'} c = {} for k in (a.keys() & b.keys()): c[k] = a[k]
字典理解法-
c = {k:a[k] for k in (a.keys() & b.keys())}
对于python2.7,可以使用dict.viewkeys()而不是dict.keys()方法。你知道吗
dict.viewkeys()
示例/演示-
>>> a = {'aa' : 'aaa', 'bb' : 'bbb', 'cc' : 'ccc'} >>> b = {'aa' : '111', 'bb' : '222', 'dd' : '444', 'ee' : '555'} >>> c = {} >>> for k in (a.keys() & b.keys()): ... c[k] = a[k] ... >>> c {'aa': 'aaa', 'bb': 'bbb'}
对于python2,只需使用dict.viewkeys找到dict键的交集:
查看和其他
对于python3,只需使用返回dictview对象的.keys:
使所有的键唯一,你就不会有问题的新字典更新从字典a到字典b的键。你必须使所有的键唯一,但如果不是那么看下面的代码,我添加一个1的关键字名称,使其唯一。你知道吗
在python3.x中,我将获取
dict.keys()
并对它们执行&
(交集),以获取公共键,然后从a
获取值。示例-字典理解法-
对于python2.7,可以使用
dict.viewkeys()
而不是dict.keys()
方法。你知道吗示例/演示-
相关问题 更多 >
编程相关推荐