リスト
データの集合を保持するコレクションである。タプルと類似点としては
ビルトインオブジェクトであるため、ライブラリやモジュールのインポートは不要である。
異なる型のデータを要素に持つことができる。
インデックス(添字)と呼ばれる整数値を用いて要素にアクセスする。
データの集合を1列に並べて保持する、イテラブルなので先頭から順に要素を取り出すことができる。
また、タプルとの相違点としては、
角括弧でデータを囲むことによってリストオブジェクトを生成する、print関数で表示する際も角括弧で囲まれている。
ミュータブルであり、任意のタイミングでの書き換え、要素の追加、削除といった操作が可能である。。
使われ方としては
配列とは異なりサイズを動的に変更できるため、何回実行されるかが確定していない処理の結果を保持するために利用する。
appendメソッド
code:python
data = []
data.append(1)
data.append(3.14)
data.append('hoge')
print(type(data))
print(data)
popメソッドによる要素の削除
code:python
data = 1, 3.14, 'hoge'
output = data.pop(1)
print(data)
print(output)
指定した要素を取り出し(戻り値で返す)、また、その値をリストから削除する。
ndarrayやtesorオブジェクトの生成時によく利用される。(タプルでも可)
code:python
import numpy, torch
data1 = numpy.array(3, 5, 7) # ndarray関数はリストとして受け取ったデータを配列に変換する
print('# data1')
print(data1)
input2 = 1, 2], [3, 4 # 入れ子になったリスト
data2 = torch.tensor(input2)
print('# data2')
print(data2)
ndarray型からリストへの変換には、tolistメソッドを利用する。
code:python
import numpy
data1 = numpy.array(3, 5, 7)
list1 = data1.tolist()
print(data1)
print(list1)
リスト型とndarray型のオブジェクト、微妙に表示形式が異なるのに注意(カンマの有無など)
tensor型からリストへの変換にはtolistメソッドを利用する。
code:python
import torch
data1 = torch.tensor(3, 5, 7)
list1 = data1.tolist()
print(data1)
print(list1)
活用例
リストは配列のように宣言時にサイズを指定する必要が無いので、例えば、オイラー法で実行する計算の過程をリストに保持し、終了後に一括してndarray型に変換するような場合に重宝する。リストの活用例1
appendとpopメソッドを活用することによりキュー、スタックなどを実装できる。しかしながらちゃんとしたキューにはcollectionsのdequeを推奨。
リスト内包表記
関連項目:タプル、辞書