【Python】でリストを生成する

スポンサーリンク

Pythonも他の言語と同様にlist型という変数の型があります。リストはシーケンスの一種で複数の要素を順序付きで格納し、様々な処理を行うことができます。今回はそんなlist型の使い方についてメモを残しておきます。

Pythonでリストを生成する

リストを新たに生成する場合は、[]内に要素をカンマ区切りで列挙する。

l = [1,2,3]

リストの要素内の型は混在していても問題ない。

#数値と文字列が混在していても問題なし
l = [1,"test",100]

[]内に何も指定しない場合は、空のリストが生成される。

#空のリストを生成(初期化)
l = []
#または
l = list()

文字列をリストに変換する

文字列などのイテラブルな変数(forの繰り返しで使える変数)は、リストに変換することも可能。

l = list('sample_test')
print(l)


文字列をリストに変換した結果
['s', 'a', 'm', 'p', 'l', 'e', '_', 't', 'e', 's', 't']

リストの要素を参照する

(構文)

list型変数[インデックス]

リストのインデックス

リストには、要素にインデックスもしくは添字と呼ばれる0始まりの番号が対応づけられている。

#リストの生成サンプル
l = ["織田信長","豊臣秀吉","徳川家康"]
print(l[0])
print(l[1])
print(l[2])

#実行結果織田信長 豊臣秀吉 徳川家康
※添字は、0から始まる!

リスト末尾からアクセス

リストは、マイナス符号を用いて末尾から逆順にアクセスすることも可能。

#リスト逆順の生成サンプル
l = ["織田信長","豊臣秀吉","徳川家康"]
print(l[-1])
print(l[-2])
print(l[-3])

#実行結果徳川家康 豊臣秀吉 織田信長

リストにスライス構文を使う

リストやタプルから部分的な要素を取得するときには、スライス構文を使う。
取得したい部分の開始位置・終了位置・ステップを指定することで取得可能。終了位置は、指定したインデックスの一つ前の要素までが取得できる。

構文説明
list型変数(start:stop)start番目からstop番目の直前までの要素を取得
list型変数(start:stop:step)start番目からstop番目の直前までの要素をStep飛ばしで取得
l = [0,1,2,3,4,5,6,7,8,9,10]
#0から2番目まで
print(l[0:3])
#5番目のみ
print(l[5:6])
#2番目から11まで2つ飛ばし
print(l[2:11:2])

#実行結果[0, 1, 2] [5] [2, 4, 6, 8, 10]

スライス構文の別の書き方

インデックスを省略した書き方

開始位置が最初の0番目の場合や、末尾の場合は、記述を省略できる。リストの終了位置などが可変になっているときなどは便利なので覚えておくとよい。

l = [0,1,2,3,4,5,6,7,8,9,10]
#すべての出力結果は0番目から2つ飛ばしの結果となる
print(l[0:11:2])
print(l[:11:2])
print(l[0::2])
print(l[::2])

実行結果[0, 2, 4, 6, 8, 10] [0, 2, 4, 6, 8, 10] [0, 2, 4, 6, 8, 10] [0, 2, 4, 6, 8, 10]

インデックスのマイナス表記

インデックスの末尾からも上記と同じ考え方で取得が可能。

l = [0,1,2,3,4,5,6,7,8,9,10]
#両方とも出力結果は同じ
print(l[0:10])
print(l[0:-1])

実行結果[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

まとめ

  • リストの生成は[]内に要素をカンマ区切りで列挙。
  • リストのインデックス始まり。
  • リストはスライス構文で部分的に取得することも可能。
  • スライス構文は省略した書き方があるので覚えておいた方が良い。

コメント

タイトルとURLをコピーしました