クラスlistは連続したデータ構造で、インデックスで要素をアクセスできます。リストされているのはオブジェクト(何かのインスタンス)です。文字列、整数、浮動小数点、リスト、タプル、辞書ほか、といった色々なクラスのインスタンスをリストすることが可能です。
リストを作成し、インデックスで要素をアクセスする例です。引数はゼロオリジンです。
# File: listsample.py
#リスト
a=[1,2,3,4,5]
print(a)
print(a[2])リストはミュータブルなので内容の書き換えが可能です。インデックスを指定して入れ替えられます。またシーケンス型の一種として扱われるのでインデックスはクラスstrと同じように’:’を使い区間を指定することもできます。
# リストはmutable
# cf. str type
a[2]=10
print(a)
# 区間を入れ替える
a[3:5]=[11,12]
print(a)リストの要素を取り出して繰り返し(イテレーション)を行うことができます。for文に関してはこちらを参考にしてください。
# リストの要素を取り出し
#
for i in a:
print("loop",i)リストの要素は任意のオブジェクトなので、リストの要素にリストを持つことができます。
#
# リストのリスト
#
b = [[1,2,3],
[4,5,6],
[7,8,9]]
print(b)多重のfor文を使い各要素にアクセスしてみます。
#
# ネストループ
for i in b:
for j in i:
print("loop",j)オブジェクトのインスタンスをリスト要素として持てるので、このように混在した形でも使えます。
#
# オブジェクトをリスト要素として持つ
#
#
c=[1,'abc',2,'efg',[4,5,6]]
print(c)リストのクラスは、たくさんのメソッドを持ちますが、ここではメソッドの一例として要素をリストの最後に追加するメソッドappend()を試してみます。
# リストのメソッド
a.append(999)
print(a)リストの要素をリストから削除する時はdel文を使います。クラスのメソッドではなくdel文を使うという形で削除するのはpythonの特徴的な点です。関数len()は長さを返します。
# mutableなデータタイプに対して
# 消去を行うdel文
del a[0]
print(a)
print(len(a))クラスlistはシーケンス型の一種なのでなので、シーケンスに共通して使える機能が適用できます。関数len()は、こちらに分類されます。
また、クラスlistはミュータブルなシーケンス型でもあるので、ミュータブルなシーケンス型に共通に使える機能が適用できます。del文はこちらに分類されます。