2017-03-11 16 views
0

に削除されたばかり私がリストを持っている:リストは、私は、Python 3.6 を使用していますPythonの

listA = [1,2,3,1,2,4] 

私は、リストから繰り返し項目を削除しようとしていますので、最終的なリストは

listA = [3,4] 
になります

ポップアップを使用して1回ループしてリストから1を削除した後、私のループは自動的に2ではなく3に進みます。 これを避けるために、次のロジックを使用しました:

ただし、ListAを消去すると、リストBのリストも自動的に消去されます。これを回避するか、この問題を解決するにはどうすればよいですか?

+1

'ListB = ListA.copy()'または 'ListB = list(ListA)'または 'ListB = ListA [:]'をコピーします。それ以外の場合、 'ListB'と' ListA'は同じオブジェクトを参照します。 –

+1

'ListA'はリストではなく、リストの* name *です。 'ListB = ListA'は' ListB'が同じリストの別の名前であることを意味します。 –

+1

[リストを複製またはコピーするにはどうすればいいですか?](http://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list) – skrx

答えて

-1

pythonのリストの名前は、実際は単なる参照であるため、新しいリストは同じリストへの参照です。実際にあなたがPythonで

ListB = list(ListA) 
+0

* Pythonの名前*は、実際にはちょうど参照。 –

+0

@PeterWood十分に公正。リストのデフォルトの振舞いを意味します。それは、タプルがどのように動作するかということではありません。一定。 –

+0

タプルはどのように機能しますか? –

2

オブジェクトを使用することができ、新しいリストを作成するには、あなたがListBListAの値を代入していないことを意味する、参照することによって格納されますが、object.Youへのポインタがis演算子を使用することができます2つのオブジェクトが同じアドレスを持つかどうかをテストします。

の配列は、あなたがリストをコピーするためにこれを使用することができますスライスしてコピーすることができます。

b = a[:] 

また、あなたが

b = list(a)

それとも、copy()モジュールを使用することができます使用することができます。

from copy import copy 
b = copy(a) 

詳細を表示How do I copy an object in Python?

関連する問題