TIM*_*MEX 84 python dictionary
d3 = dict(d1, **d2)
Run Code Online (Sandbox Code Playgroud)
我明白这会合并字典.但是,它有独特之处吗?如果d1与d2具有相同的键但值不同,该怎么办?我希望合并d1和d2,但如果有重复键,则d1具有优先权.
Fel*_*ing 148
.update()如果您不再需要原始文件,则可以使用该方法d2:
使用其他键中的键/值对更新字典,覆盖现有键.返回
None.
例如:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'b': 1, 'c': 3}
>>> d2.update(d1)
>>> d2
{'a': 1, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
更新:
当然,您可以先复制字典,以创建新的合并字典.这可能是也可能不是必要的.如果你的词典中有复合对象(包含其他对象的对象,如列表或类实例),copy.deepcopy也应该考虑.
unu*_*tbu 40
在Python2中,
d1={'a':1,'b':2}
d2={'a':10,'c':3}
Run Code Online (Sandbox Code Playgroud)
d1覆盖d2:
dict(d2,**d1)
# {'a': 1, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
d2覆盖d1:
dict(d1,**d2)
# {'a': 10, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
这种行为不仅仅是一个实施的侥幸; 它在文档中得到保证:
如果在位置参数和关键字参数中都指定了键,则与该关键字关联的值将保留在字典中.
Xav*_*hot 23
从 开始Python 3.9,运算符|使用两个字典中合并的键和值创建一个新字典:
# d1 = { \'a\': 1, \'b\': 2 }\n# d2 = { \'b\': 1, \'c\': 3 }\nd3 = d2 | d1\n# d3: {\'b\': 2, \'c\': 3, \'a\': 1}\nRun Code Online (Sandbox Code Playgroud)\n\n这:
\n\n\n\n\n使用 d2 和 d1 的合并键和值创建一个新字典 d3。当 d2 和 d1 共享密钥时,d1 的值优先。
\n
另请注意|=通过合并 d1 来修改 d2 的运算符,优先级为 d1 值:
# d1 = { \'a\': 1, \'b\': 2 }\n# d2 = { \'b\': 1, \'c\': 3 }\nd2 |= d1\n# d2: {\'b\': 2, \'c\': 3, \'a\': 1}\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\xa8
\ntzo*_*zot 14
如果您想d1在冲突中拥有优先权,请执行以下操作:
d3 = d2.copy()
d3.update(d1)
Run Code Online (Sandbox Code Playgroud)
否则,反向d2和d1.
| 归档时间: |
|
| 查看次数: |
92719 次 |
| 最近记录: |