Are*_*Tor 0 python dictionary copying python-3.x
在Python 3中,如何复制字典而只留下一个元素?两个dicts之间的数据共享对我来说很好.目前我有这个代码:
def copy_leaving_out(dictionary, key):
return {k: v for k, v in dictionary if k != key}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
编辑:我忘了使用dictionary.items()
而不是dictionary
,请考虑以下代码而不是前一个代码:
def copy_leaving_out(dictionary, key):
return {k: v for k, v in dictionary.items() if k != key}
Run Code Online (Sandbox Code Playgroud)
使用字典理解很好(和pythonic).但是,要迭代您需要调用的键/值对dictionary.items()
:
def copy_leaving_out(dictionary, key):
return {k: v for k, v in dictionary.items() if k != key}
Run Code Online (Sandbox Code Playgroud)
如果您想更明确,您还可以使用dictionary.copy()
创建字典的浅表副本,然后删除所需的键:
def copy_leaving_out(dictionary, key):
copy = dictionary.copy()
del copy[key]
return copy
Run Code Online (Sandbox Code Playgroud)
在性能方面,第二个版本似乎明显更快,可能是因为它不涉及密钥比较:
In [14]: d = {k: k for k in range(200)}
In [15]: %timeit copy_leaving_out_dc(d, 100)
13.9 µs ± 724 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
In [16]: %timeit copy_leaving_out_copy(d, 100)
738 ns ± 4.45 ns per loop (mean ± std. dev. of 7 runs, 1000000 loopseach)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
77 次 |
最近记录: |