Pythonで作成したリストを複製する方法
リストを複製するには以下3つの方法があります。
- copy()関数を使う
- list()関数を使う
- スライスを利用する
copy()関数を使ってリストを複製する
copy()を使ってリストを複製するには、複製するリスト名=複製元のリスト名.copy()と書くここで簡単に複製することができます。
実際にリストを複製するコードを書いてみましょう。
#copy()を使ってリストを複製する
fx = ['USDJPY', 'GBPJPY', 'EURJPY']
watch_list = fx.copy()
print(watch_list)
コードを実行すると複製したwatch_listの中にfxと同じリストが入っていることがわかります。
list()関数を使ってリストを複製する
list()を使ってリストを複製するには、複製するリスト名=list(複製元のリスト名)と書くことで簡単に複製することができます。
#list()を使ってリストを複製する
fx = ['USDJPY', 'GBPJPY', 'EURJPY']
watch_list = list(fx)
print(watch_list)
コードを実行すると複製したwatch_listの中にfxと同じリストが入っていることがわかります。
スライスを利用してリストを複製する
スライスを利用してリストを複製することも可能です。
リスト内を全範囲指定することでリストを複製します。スライスで値を取り出す方法はプログラミング初心者のPython入門#7|数値と文字列「文字列から指定した文字を取り出す」を参考にしてください。
#スライスを使ってリストを複製する
fx = ['USDJPY', 'GBPJPY', 'EURJPY']
watch_list = fx[:]
print(watch_list)
コードを実行すると複製したwatch_listの中にfxと同じリストが入っていることがわかります。
Pythonでリストとリストを連結する方法
リスト同士を連結するには以下2つの方法があります。
- +演算子を使う方法
- extend()関数を使う方法
+演算子を使ってリスト同士を連結する
まずは+演算子を使う方法です。この方法はとても単純で連結後のリスト名=リストA+リストBで連結できます。
#+演算子でリスト同士を連結する
fx1 = ['USDJPY', 'GBPJPY', 'EURJPY']
fx2 = ['AUDJPY', 'CHFJPY', 'CADJPY']
watch_list = fx1 + fx2
print(watch_list)
コードを実行してみます。
['USDJPY', 'GBPJPY', 'EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
fx1とfx2が連結したリストを作成することができました。
extend()関数を使ってリスト同士を連結する
次に解説するのがextend()関数を使った方法です。コードの書き方はリストA.extend(リストB)のように書くことで簡単にリストを連結することができます。+演算子を使った方法と異なる点は、新たに変数を設定せずリストAにリストBを直接連結している点です。
#extend()でリスト同士を連結する
fx1 = ['USDJPY', 'GBPJPY', 'EURJPY']
fx2 = ['AUDJPY', 'CHFJPY', 'CADJPY']
fx1.extend(fx2)
print(fx1)
このコードを実行すると先ほどと同様にリスト同士が連結していることを確認できます。
Pythonでリストからリストの値を取り出す方法
リストをスライスして値を取り出す
リストを複製する方法で使用したスライスを使えば、リストの値を取り出すこともできます。
#リストをスライスして値を取り出す
fx = ['USDJPY', 'GBPJPY', 'EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
print(fx[:]) #全ての値を取り出す
print(fx[2:]) #インデックス番号2から最後まで取り出す
print(fx[:2]) #最初からインデックス番号1まで取り出す
コードを実行してみます。
['USDJPY', 'GBPJPY', 'EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
['EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
['USDJPY', 'GBPJPY']
指定した通りの値を取り出すことができました。インデックス番号については、プログラミング初心者のPython入門#7|数値と文字列「文字列位置の数え方」を参照ください。
リストをスライスで分割する
スライスはいろいろな使い方があります。例えば、1つのリストを2つに分割したい場合にも利用できます。
先ほどのリストを2つに分割してみましょう。
#リストをスライスで分割する
fx = ['USDJPY', 'GBPJPY', 'EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
fx1 = fx[:2]
fx2 = fx[2:]
print(fx1)
print(fx2)
コードを実行してみます。
['USDJPY', 'GBPJPY']
['EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
指定したインデックス番号で分割することができました。
変数を使ってインデックス番号を指定する
スライスするときのインデックス番号は、変数でも指定することができます。同じインデックス番号を複数指定する場合は、変数を使用すると効率的です。
先ほどのコードに変数を加えて、インデックス番号を指定してみます。
#リストをスライスで分割する
fx = ['USDJPY', 'GBPJPY', 'EURJPY', 'AUDJPY', 'CHFJPY', 'CADJPY']
n = 2
fx1 = fx[:n]
fx2 = fx[n:]
print(fx1)
print(fx2)
今回のまとめ
・リストを複製するにはcopy()、list()、スライスを利用する
・リストを連結するには+演算子、extend()を使う
・リストから値を取り出すにはスライスを利用する。
コメント