今回は、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 ]
|
この記事もチェック:Pythonのリストの最初と最後の要素を取得する方法を解説する
テクニック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 ]
|
この記事もチェック:pythonの配列(リスト)の中で最も多い数を見つける方法を解説(コード付き)
テクニック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でリストをコピーするさまざまな方法を紹介しました。
しかし、読者の皆さん、これで学習が終わったわけではありません。
上記の例を参考にして、実際に同じように実装してみることを強くお勧めします。