Pythonでlistやcopyメソッドを使ってリストをコピーする方法

スポンサーリンク

今回は、Pythonでリストをコピーするための様々なテクニックを理解します。

Pythonのリストは、データの値を格納し、操作するためのデータ構造です。


スポンサーリンク

テクニック1:Pythonでリストをコピーするextend()メソッド

Pythonの組み込みのextend()メソッドは、リストの要素を別のリストにコピーするために使用することができます

extend() メソッドは、基本的にリスト、タプル、ディクショナリなどの反復記号を引数にとり、反復記号の要素を反復または走査して、要素ごとに新しいリストに要素を追加していきます。

構文は以下の様な感じです。

list.iterable(iterable)

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
copy_list.extend(list1)
print("Input List:", list1)
print("Copied List:", copy_list)

結果は以下の通りです。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

technique 2: Pythonでリストをコピーするスライス演算子

Pythonの スライス演算子 は、Pythonのリストの要素をコピーする最も効率的な方法と考えられています。

構文は以下の通りです。

[start:stop:steps]
  • start: start: スライスの開始を決定します。
  • stop: イタラブルのスライスの終了を決定します。
  • ステップ step: スキップする要素数、またはスライスを行う間隔を決定します。

上記では、リストをコピーするために、以下のフォーマットでスライシングを行っています。

[:]

これは、リストのスライスが開始インデックス、すなわちインデックス 0 から始まり、ステップ値 = 1 の最後の要素で終了することを意味します。

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
copy_list = list1[:]
print("Input List:", list1)
print("Copied List:", copy_list)

結果は、以下の通りになります。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

テクニック 3: Pythonでリストをコピーするためのリスト理解術

Pythonでリストをコピーするには、Python List Comprehensionというテクニックが便利です。

これは、たった1行のコードでステートメントを作成する代替方法です。

構文は以下の様な感じです。

[element for element in list]

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
copy_list = [item for item in list1]
print("Input List:", list1)
print("Copied List:", copy_list)

上記のコードでは、リスト内包を使用しています。

itemがポインタ要素として機能し、リスト’list1’を走査して要素ごとにデータ値をコピーしています。

出力は以下の通りです。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

テクニック4: list() メソッドでリストをコピーする

Python の list() メソッドは、基本的に反復記号を引数として受け取り、その配列をリストとして返します。

構文は以下の通りです。

list([iterable])

以下のコードでは、list-list1 を list() メソッドに渡して、list-list1 のすべての要素を含む新しいリストを作成し、リストのコピーという目的を達成しています。

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
copy_list = list(list1)
print("Input List:", list1)
print("Copied List:", copy_list)

結果は以下の通りです。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

テクニック5:Pythonのcopy()メソッドでリストをコピーする

Pythonに組み込まれている copy() メソッド は、リストのデータ項目を別のリストにコピーするために使うことができます。

copy()メソッドは、リストを走査して、リストの要素を別のリストに要素ごとにコピーします。

構文は以下の通りです。

list.copy()

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
copy_list = list1.copy()
print("Input List:", list1)
print("Copied List:", copy_list)

結果は以下の通りです。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

テクニック6:append()メソッドでPythonのリストをコピーする

Pythonに組み込まれている `append()’ メソッドを使うと、リストの要素を別のリストに簡単にコピーすることができます

名前が示すように、append()メソッドはリストの要素を必要なリストの最後に追加します。

しかし、今回は空のリストを扱うので、Pythonでリストをコピーするためにこのメソッドを使用することができます

構文は以下の様な感じです。

list.append(value or element)

例えば、以下の様になります。

list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90]
copy_list = []
for ele in list1: copy_list.append(ele)
print("Input List:", list1)
print("Copied List:", copy_list)

結果は以下の通りです。

Input List: [10, 20, 30, 40, 50, 60, 70, 80, 90]
Copied List: [10, 20, 30, 40, 50, 60, 70, 80, 90]

まとめ

Pythonでリストをコピーするさまざまな方法を紹介しました。

しかし、読者の皆さん、これで学習が終わったわけではありません。

上記の例を参考にして、実際に同じように実装してみることを強くお勧めします。


タイトルとURLをコピーしました