Pythonのリスト
リストとは
リストとは連続するデータの塊です。
複数のデータを一つの変数で定義することができます。
リストの宣言
以下がリストを宣言する構文です。
変数名 = [値1, 値2,…値N]
構文について解説するとすると以下のようなルールがあります。
・値を[]で囲む
・値の区切りは「,」を付ける
以下に実際のコードの記述例を示します。
# 文字列の配列
str_array = ['しりとり','りす','すいか']
# 数値の配列
int_array = [5, 34, 2, 92, 54]
# 要素がないリストも宣言できる
empty_array = []
# 組み込みのリスト関数からも宣言できる
# こちらで宣言する場合は[]ではなく()で囲む
method_array = list(('しりとり','りんご','ゴム'))
リストの考え方
用語を整理しておきます
要素 :配列の一つの値
インデックス:配列の要素を表す番号
配列の何番目かを表す言葉をインデックスと言います。
配列の要素にアクセスする時はインデックスを指定してアクセスします。
int_array = [5, 34, 2, 92, 54]
# 5が出力される
print(int_array[0])
インデックスの要素番号は0から始まります。
直感的に違和感を覚える方が多いのではないでしょうか。
これはリストがメモリにどう配置されているかを理解するとわかります。
メモリにはアドレスというデータを置く場所があます。
リストがメモリ上に展開される場合、以下のように配置されます。
メモリの位置 | 123 | 124 | 125 | 126 | 127 |
---|---|---|---|---|---|
値 | 5 | 34 | 2 | 92 | 54 |
リストはリストの先頭要素の位置を憶えています。
上記の図で言うと123番目から始まることを憶えています。
インデックス番号は先頭から数えて何番目かを指定しているのです。
5の値は123番目から見て0番先の値なので0を指定しているというわけです。
リストの基本的な操作
リストのN番目のデータを取得する
リスト変数[インデックス番号]で値を取得することができます。
int_array = [5, 34, 2, 92, 54]
# 5が出力される
print(int_array[0])
リストの更新
リストの要素はあとから更新することができます。
更新は変数への代入と同じように行うことができます。
int_array = [5, 34, 2, 92, 54]
int_array[2] = 100
# 100が出力される
print(int_array[2])
要素の追加
リストのappend関数またはinsert関数を使って要素を追加することができます。
int_array = [5, 34, 2, 92, 54]
# リストの末尾に追加される
int_array.append(100)
# 100が出力される
print(int_array[5])
# 挿入したい位置と値を指定する
int_array.insert(1,200)
# 配列の今の状態は[5, 200, 34, 2, 92, 54, 100]
# 200
print(int_array[1])
要素の削除
del または remove関数を使います。
int_array = [5, 34, 2, 92, 54]
# remove関数は要素の値を指定して削除する。
# 複数同じ値がある場合、先頭に近い方が削除される
int_array.remove(34)
# 今の状態は[5,2,92,54]
# delはインデックスを指定して削除する
del int_array[2]
# 今の状態は[5,2,54]
リストの結合
複数のリストを結合するときは「+」を使います。
int_arrayA = [5, 34, 2, 92, 54]
int_arrayB = [6, 25, 73, 57, 81]
int_new_array = int_arrayA + intArrayB
#int_new_arrayは[5, 34, 2, 92, 54, 6, 25, 73, 57, 81]
print(int_new_array)
さいごに
今回はリストの解説をしました。
リストは連想配列と並んでプログラムを組む上ではほぼ必須の要素と言ってよいでしょう。
このリストと条件分岐用の構文さえ覚えれば、事実上ほとんどのプログラムを組むことが可能になります。