rec*_*gle 88 python dictionary append
我有两本词典,我希望能够成为一本词典:
像这样的伪Python会很好:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
Run Code Online (Sandbox Code Playgroud)
blu*_*ume 149
如果你有兴趣在不使用中间存储的情况下创建新的dict :(这比使用dict.items()更快,在我看来更干净)
dic2 = dict(dic0, **dic1)
Run Code Online (Sandbox Code Playgroud)
或者,如果您乐意使用现有的dicts之一:
dic0.update(dic1)
Run Code Online (Sandbox Code Playgroud)
Vij*_*jay 16
>>> dic0 = {'dic0':0}
>>> dic1 = {'dic1':1}
>>> ndic = dict(dic0.items() + dic1.items())
>>> ndic
{'dic0': 0, 'dic1': 1}
>>>
Run Code Online (Sandbox Code Playgroud)
use*_*019 12
您正在寻找更新方法
dic0.update( dic1 )
print( dic0 )
Run Code Online (Sandbox Code Playgroud)
给
{'dic0': 0, 'dic1': 1}
Run Code Online (Sandbox Code Playgroud)
ide*_*n42 11
以下是添加词典的几种方法.
您可以使用Python3的字典解包功能.
ndic = {**dic0, **dic1}
Run Code Online (Sandbox Code Playgroud)
或者通过添加两个项目来创建新的dict.
ndic = dict(dic0.items() + dic1.items())
Run Code Online (Sandbox Code Playgroud)
如果你可以修改 dic0
dic0.update(dic1)
Run Code Online (Sandbox Code Playgroud)
如果您不能修改dic0
ndic = dic0.copy()
ndic.update(dic1)
Run Code Online (Sandbox Code Playgroud)
如果一个字典中的所有键都被确保为字符串(dic1
在这种情况下,当然可以交换args)
ndic = dict(dic0, **dic1)
Run Code Online (Sandbox Code Playgroud)
在某些情况下,使用dict理解(Python 2.7或更新版本)可能很方便,
特别是如果你想同时过滤掉或转换某些键/值.
ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)
小智 5
请在下次提问之前搜索网站:如何连接两个词典以在Python中创建一个新词典?
最简单的方法是简单地使用您的示例代码,但使用每个字典的items()成员.所以,代码将是:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
dic2 = dict(dic0.items() + dic1.items())
Run Code Online (Sandbox Code Playgroud)
我在IDLE测试了它,它工作正常.但是,关于此主题的上一个问题表明此方法很慢并且会占用内存.还有其他几种方法,所以请注意,如果内存使用很重要.
归档时间: |
|
查看次数: |
87281 次 |
最近记录: |