私は次のコードスライスしてもリストのコピーが作成されない場合や、リストの実際のコピーを得るにはどうすればよいですか?
tempList=origList[0:10]
for item in tempList:
item[-1].insert(0 , item[1])
del item[1]
を使用して私のリストのスライスを取った大きな私はへの変更のすべてのこの考え方をした私はリストを変更しようとしていますし、私の変更は少しトリッキーなっていたので私のリストリストはtempListオブジェクトに影響し、origListオブジェクトには影響しません。
私のコードを正しく取得して元のリストで実行したところ、上記のコードをテストする際に、最初の10個の項目(0〜9のインデックス)が影響を受けました。
だから、私はそれをgoogledと私はスライスを取ると、リストをコピーし、新しいものを作成すると言う参照を見つける。また、私はorigListを最初から作成したので、最初の10個のアイテムのIDを取得したので、アイテムのIDを見つけるのに役立つコードが見つかりました。リストを再びスライスし、スライスからのidがorigListの最初の10個のIDと一致していることがわかりました。
私はリストをコピーするために、より神託の方法を提案し、よりノートが
tempList=list(origList([0:10])
を使用することです、私はそれを試してみましたが、私はまだtempListからIDがorigListからのIDと一致していることを見つけました。
コーディング-Iは私がどのようにコピーがカイの答え正解に基づいて
を働くかを理解した後、自分でリストの内包でこれを行う方法を把握するつもりを行うには良い方法を提案しないでください方法は次のとおりです。魔法のよう
import copy
tempList=copy.deepcopy(origList[0:10])
id(origList[0])
>>>>42980096
id(tempList[0])
>>>>42714136
作品
非常に参考になったGoogleは、すぐに浅いものから浅いものまでを考え出しました。ありがとうございます。 – PyNEwbie