しかし、私がnewを変更すると、self._markerも変更されます。 self._markerを変更せずに、新しいものを変更できるようにしたい。私はこの操作を数千回行うので、deepcopyを使用することはできません。また、deepcopyを使用すると大きなパフォーマンス上のペナルティが発生します。リストの内容を変更せずにコピーを作成するにはどうすればよいですか?
私は何をしますか?
しかし、私がnewを変更すると、self._markerも変更されます。 self._markerを変更せずに、新しいものを変更できるようにしたい。私はこの操作を数千回行うので、deepcopyを使用することはできません。また、deepcopyを使用すると大きなパフォーマンス上のペナルティが発生します。リストの内容を変更せずにコピーを作成するにはどうすればよいですか?
私は何をしますか?
適切なトラックにありますが、内部リストのコピーを作成しないため、提案されたソリューションは機能しません。彼らは同じままです。
あなたがこれを行うことができます:
new_list = [e[:] for e in self._marker]
あなたが、その場合には必要なものである。このパフォーマdeepcopy。
これはあなたが質問した質問に答えます。他の要件がある場合は、あなたの質問に明示する必要があります。
ディープコピーが必要な場合は、ディープコピーを作成する必要があります。そして、深いコピーは高価になる可能性があります。あなたは本当に何をしようとしていますか? (つまり、これはXYの問題だと思う) – Claudiu
コピーを2レベル深くするには、 'self._markerのlに対してnew = [l [:]]' – Claudiu
@Claudiu私の属性のコピーを作成しようとしている_markerので、私はコピーを使用して、それを変更することができますが、次回私は、self._markerを同じままにして、変更しないようにします – Randomuser123