参考文献と値(this,thisとthis)によるリストのコピーに関するいくつかの素晴らしい質問と回答があります。残念ながら、提案された解決策のどれもすべてのネストされた構造からの参照を削除します(... b = a[:]
、b = list(a)
、copy.copy
を試してみました)。私の最後の希望はcopy.deepcopy
でしたが、内部に配列があるときは入れ子構造にはうまくいきません(私はopenpyxlカラムで作業しています)。私は、スタックの一番下に、このエラーを取得する:Python 2では、複雑なネストされた要素のリストを、リストの内容にかかわらず、参照ではなく値でコピーする方法
File "C:\Python27\lib\copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
TypeError: unhashable type: 'array.array'
私の質問です:それは関係なく、a
の中にネストされているものの、いずれかの言及なしリストa
の完全なコピーを作成することは可能でしょうか?
あなたのエラーは 'deepcopy'に起因するものではありません。むしろ、あなたが 'dict'の' key 'としてそれを使用しようとしているという事実です。 'key'はハッシュ可能型でなければなりません。 – CoryKramer
あなたは '構造全体を一度copy.deepcopy'呼び出し、すべてが再帰的にコピーされます。' B = copy.deepcopyは、(a)は ' –
はまだ、' copy.py'のPythonモジュールは、エラーの原点です。 –