copy.copy()
copy.deepcopy()
タプルのような不変オブジェクトの参照をコピーするだけです。最初の不変オブジェクトの複製コピーを別のメモリ位置に作成するにはどうすればよいですか?
64507 次
3 に答える
42
あなたが探してdeepcopy
いる。
from copy import deepcopy
tup = (1, 2, 3, 4, 5)
put = deepcopy(tup)
確かに、これら2つのタプルのIDは同じアドレスを指します。タプルは不変であるため、まったく同じである別のコピーを作成する理由は実際にはありません。ただし、タプルには可変要素を含めることができ、deepcopy/idは予想どおりに動作することに注意してください。
from copy import deepcopy
tup = (1, 2, [])
put = deepcopy(tup)
tup[2].append('hello')
print tup # (1, 2, ['hello'])
print put # (1, 2, [])
于 2013-03-05T02:06:29.597 に答える
25
空のタプルを追加します。
>>> a = (1, 2, 3)
>>> a is a+tuple()
False
タプルを連結すると、結果が等しいことが判明した場合でも、常に新しい個別のタプルが返されます。
于 2013-03-05T02:03:53.857 に答える
4
これを試して:
tup = (1,2,3)
nt = tuple(list(tup))
そして、空のタプルを追加する方がはるかに優れていると思います。
于 2013-03-05T02:14:26.040 に答える