Pythonにおけるリストとは?
これまでの記事で何回か登場した「リスト」について詳しく解説していきます。
Pythonにおけるリストとは、複数の値をまとめて扱いたい場合に使用する機能で、他のプログラム言語で扱うところの配列に該当します。
Pythonのリストには以下の特徴があります。
- リストに入れた値は左から順にインデックス番号で管理される
- リストに入れる型は数値や文字列など異なる方を混在することができる
- リストは角括弧またはlist()関数で作成する
- リストの中にリストを入れることができる(多重リスト)
Pythonにおけるリストの作り方
角括弧でリストを作る方法
角括弧でリストを作る場合は、[]内に値をカンマで区切って入力します。
#リストを角括弧で作成する
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
print(fxlist)
このコードを実行すると変数fxlistに代入したリストが表示されます。
また、リストは以下のように改行しても作ることができます。
#リストを改行して角括弧で作成する
fxlist = [
'usdjpy', 'eurjpy', 'gbpjpy',
'audjpy', 'chfjpy', 'cadjpy'
]
print(fxlist)
関数list()でリストを作る方法
次は関数list()を使ってリストを作成してみましょう。
list()の引数に文字列「usdjpy」を代入して、リストがどのように作成されるか見てみます。
#リストをlist()で作成する
fxlist = list("usdjpy")
print(fxlist)
コードを実行してみます。
['u', 's', 'd', 'j', 'p', 'y']
一文字ずつ取り出されたリストが作成されました。
文字列を一文字ずつではなく、単語でリストを作りたい場合は関数split()を使います。
関数split()で単語のリストを作る方法
split()の引数内にはカンマやスペースなどのセパレータを代入します。何も代入しない場合はスペースがセパレータになります。
#リストをsplit()で作成する
fxlist = 'usdjpy eurjpy gbpjpy audjpy chfjpy cadjpy'
trade_list = fxlist.split()
print(trade_list)
コードを実行してみます。
['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
カンマをセパレータに使った場合も確認してみましょう。
#リストをsplit()で作成する
fxlist = 'usdjpy, eurjpy, gbpjpy, audjpy, chfjpy, cadjpy'
trade_list = fxlist.split(',')
print(trade_list)
コードを実行してみます。
['usdjpy', ' eurjpy', ' gbpjpy', ' audjpy', ' chfjpy', ' cadjpy']
一見、先ほどのリストを同じように見えますが、余分なスペースが入ってしまっています。変数fxlistのカンマの後にスペースが入っているためです。
これを解決するにはsplit(‘, ‘)のようにカンマの後に同じスペースを入れることで回避できます。
リストの値を編集する
リストから指定した値を取り出す方法
リストから指定した値を取り出すにはインデックス番号を使います。この点はプログラミング初心者のPython入門#7|数値と文字列で説明した文字列から指定した文字を取り出す方法と同じです。
変数の後の角括弧内に取り出したいリストのインデックス番号を入力します。以下ではリストの先頭の値を取り出します。
#リストから指定した値を取り出す
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
print(fxlist[0])
このコードを実行するとリスト先頭の「usdjpy」が取り出されます。
リストから範囲で取り出すには文字列[開始位置:終了位置]のように指定します。以下では先頭から3番目まで取り出します。
#リストから指定した値を取り出す
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
print(fxlist[0:3])
リストの値を更新する方法
リストの値を更新するには角括弧でインデックス番号を指定し、=の後に新しい値を入力します。
以下ではリストの先頭を「eurusd」に変更します。
#リストの値を更新する
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
fxlist[0] = "eurusd"
print(fxlist)
コードを実行してみます。
['eurusd', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
先頭の値が更新されていることがわかります。
リストに値を追加する方法
作成済みのリストに値を追加するには関数append()を使います。引数内に追加する値を入力します。
以下では「eurusd」をリストに追加してみます。
#リストに値を追加する
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
fxlist.append("eurusd")
print(fxlist)
コードを実行してみます。
['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy', 'eurusd']
一番最後の位置に値が追加されました。
リストの値を削除する方法
作成済みのリストに値を削除するには関数remove()を使います。引数内に削除する値を入力します。
以下では「usdjpy」を削除してみます。
#リストの値を削除する
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
fxlist.remove("usdjpy")
print(fxlist)
コードを実行してみます。
['eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
指定した値が削除されたリストが表示されました。
Pythonで複雑なリストを作成する
多重リストの作成方法
リストの中にリストを入れて、より複雑なリストを作成することもできます(多重リストと呼びます)。
以下のイメージ図のようなリストを作成してみましょう。
#多重リストを作成する
fx = ['USDJPY', 'GBPJPY', 'EURJPY']
index = ['NI225', 'TOPIX', 'NASDAQ']
symbollist = [fx, index]
print(symbollist)
コードを実行して、多重リストが作成できたか確認してみます。
[['USDJPY', 'GBPJPY', 'EURJPY'], ['NI225', 'TOPIX', 'NASDAQ']]
イメージ図のような多重リストを作成することができました。
多重リストの値を呼び出す方法
多重リストに格納している値を呼び出すには、リスト[インデックス番号][インデックス番号]のように入力します。
インデックス番号は以下のイメージ図のように対応しています。
例えば、作成した多重リストから「NI225」を呼び出すには以下のように入力します。
print(symbollist[1][0])
今回のまとめ
・リストを作りには角括弧[]または関数list()
・リストから値を取り出すにはインデックス番号を使う
・リストの値を更新するにはインデックス番号を指定して=で新しい値を入力
・リストに値を追加するには関数append()
・リストから値を削除するには関数remove()
・リストの中にリストを入れることも可能(多重リスト)
コメント