Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストを複製またはコピーする方法は?


Pythonでは、代入演算子は新しいオブジェクトを作成するのではなく、既存のオブジェクトに別の名前を付けます。これはid()関数で確認できます

>>> L1 = [1,2,3,4]
>>> L2 = L1
>>> id(L1)
185117137928
>>> id(L2)
185117137928

実際にリストをコピーするには、次の方法を使用できます。

スライス演算子:スライス演算子の2つのオペランドは、スライスの開始と終了のインデックスです。明示的に使用されていない場合、両方ともデフォルトでシーケンスの終わりを開始します。この機能を利用できます

>>> L1 = [1,2,3,4]
>>> L2 = L1[:]
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117025160
>>> id(L2)
185117171592

もう1つの方法は、組み込みのlist()メソッドを使用することです

>>> L1 =[ 1,2,3,4]
>>> L2 = list(L1)
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117295816
>>> id(L2)
185117209352

Pythonの標準ライブラリのコピーモジュールには、オブジェクトの浅いコピーと深いコピーのための関数が含まれています。ディープコピーはネストされたコピーですが、シャローコピーでは、内部リストは参照によってのみコピーされます。

>>> import copy
>>> L1 = [1,2,3,4]
>>> L2 = copy.copy(L1)
>>> L1
[1, 2, 3, 4]
>>> L2
[1, 2, 3, 4]
>>> id(L1)
185117025160
>>> id(L2)
185117295880
>>> L3=copy.deepcopy(L1)
>>> L3
[1, 2, 3, 4]
>>> id(L3)
185117304328

  1. Pythonでリストを定義するにはどうすればよいですか?

    リストはPythonのシーケンスデータ型です。これは、角かっこ([])で囲まれた、必ずしも同じタイプである必要はない要素のコンマ区切りのリストです。リストは順序付けられたコレクションです。 Listオブジェクトの個々の要素には、ゼロベースのインデックスでアクセスできます。 例 list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"] 出力

  2. Pythonで文字列のリストを並べ替える方法は?

    リストを適切に並べ替える、つまりリスト自体を並べ替え、そのリスト自体の順序を変更するには、文字列のリストでsort()を使用できます。たとえば、 >>> a = ["Hello", "My", "Followers"] >>> a.sort() >>> print a ['Followers', 'Hello', 'My'] 元のリストをそのまま維持し、代わりにソートされた要素の新しいリストが必要な場合は、sorted(list)を