擅长:python、mysql、java
<p>您只需实现自己版本的“medium”-copy:</p>
<pre><code>import copy
def mediumcopy(value):
return dict(
(key, copy.copy(val))
for key, val in value.iteritems())
z = {'a': [[1], [2]]}
zcopy = mediumcopy(z)
assert id(z) != id(zcopy) # True
assert id(z['a']) != id(zcopy['a']) # True
assert id(z['a'][0]) == id(zcopy['a'][0]) # True
</code></pre>
<p>Python 3版本:</p>
<pre><code>def mediumcopy(value):
return {key: list(val) # you can still use copy.copy here
for key, val in value.items()}
z = {'a': [[1], [2]]}
zcopy = mediumcopy(z)
assert id(z) != id(zcopy) # True
assert id(z['a']) != id(zcopy['a']) # True
assert id(z['a'][0]) == id(zcopy['a'][0]) # True
</code></pre>