プログラムでは、取り扱うデータの種類によってデータ型というものが決まっています。
- 数値⇒数値型
- 文字列⇒文字列型
- シーケンス型⇒複数のデータの並びなどなど…
今回は、シーケンス型の1つリストについて解説します。
動画で解説
【解説動画】5min. Python|リスト型の生成と要素へのアクセス
5min. Python解説動画【入門編】|第9回目:リスト型の作成と要素へのアクセス
シーケンス型とは?
英語のシーケンス(sequence)は、連続しているものや並びを意味します。
シーケンス型は、その名の通り複数のデータの並びを取り扱うための型です。
シーケンス型には次の3種類があります。
- リスト:データの並び(後から中身を変更可能)
- タプル:データの並び(後から中身を変更不可能)
- セット:重複しないデータの集合
今回はこの中でもリストを解説してきます。
リストとは?
数値型や文字列型では、1つの変数に1つのデータしか格納できませんでした。
しかし、リストでは複数のデータの並びをひとまとまりにしたものです。
初めのうちは、仕切り板で区切られた箱の中にデータを入れていくとイメージするとわかりやすいかもしれません。
それぞれのデータにはインデックスと呼ばれる番号が振られていて、各データにアクセスすることができるようになっています。
リストを作成する
リストはデータの並び、その名の通りデータのリストを取り扱うために利用します。
リストを作成するためには、[ ]
にデータ群を ,
区切りで入力します。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions )
# ⇒ ['north', 'east', 'west', 'south']
4つのデータを持ったリストを作成することができました。
リストの各要素にアクセス
次の順番で解説していきます。
- 要素数を数える
- 1つの要素にアクセス
- 負の値で要素にアクセス
- 複数の要素にアクセス(スライス)
リストの要素数を数える
まずは、要素数を数えてみます。
要素数を超えてアクセスするとエラーになってしまうので、要素数を数える方法は覚えておいた方が良いです。
要素数を数えるためにはlen()
関数を使用します。
cardinal_directions = ["north", "east", "west", "south"]
print( len(cardinal_directions) )
# ⇒ 4
len()
は文字列の文字数を数える際にも使用しましたね。
文字列の数え方はこちらの動画で紹介しています。
1つの要素にアクセス
各要素にアクセスするためには、
- リストの変数名の後ろに
[ ]
をつけて、 - アクセスしたい要素の番号(インデックス)を入力
します。
ここで注意したいのは、インデックスは0
から始まる点です。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[0] )
# ⇒ north
print( cardinal_directions[1] )
# ⇒ east
print( cardinal_directions[3] )
# ⇒ south
最後の要素にアクセスするためには、要素数-1
を入力します。
要素が4つの場合、最後の要素のインデックスは3です。
このインデックスの上限を超えて、参照しようとするとエラーになります。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[4] )
# ⇒ IndexError Traceback (most recent call last)以下略
要素数-1
は、ものすごく忘れやすいです。常に注意しましょう!
要素を書き換える場合には、要素にアクセスして上書きします。
cardinal_directions = ["north", "east", "west", "south"]
cardinal_directions[0] = "北"
print(cardinal_directions)
# ⇒ ['北', 'east', 'west', 'south']
負の値で要素にアクセス
pythonでは、インデックスとして負の値を指定することもできます。
負の値を指定すると、リストの後ろから要素を指定することができます。
例えば、インデックスとして-1
を入力すると、リストの最後の要素を指定できます。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[-1] )
# ⇒ south
リストの長さに関係なく、インデックス-1
は最後の要素です。
負のインデックスには、最後の要素にアクセスする際に
- いちいちリストの長さを調べる必要がない
- 要素数の上限を超えてエラーを起こす心配がない
というメリットがあります。
複数の要素にアクセス(スライス)
リスト内の連続した複数の要素にアクセスすることを、スライスと呼びます。
スライスするためには
- リストの変数名の後ろに
[ ]
をつけて、 [初めの要素のインデックス:最後の要素のインデックス+1]
と入力
します。
2つのインデックスは、最後の要素のインデックス+1
である点に注意しましょう。
次の例では、インデックス0, 1
の要素を取り出します。
インデックス2
の要素は、取り出されていませんね。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[0:2] )
# ⇒ ['north', 'east']
インデックス0
の要素から切り出す場合には、初めの0
を省略できます。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[:2] ) # [0:2]と同じ
# ⇒ ['north', 'east']
逆に、最後の要素まで切り出す場合には、後ろのインデックスを省略できます。
cardinal_directions = ["north", "east", "west", "south"]
print( cardinal_directions[2:] ) # [2:4]と同じ
# ⇒ ['west', 'south']
おわりに
今回はリストの作成・要素へのアクセスについて紹介しました!
5min. python動画解説では、pythonの基本をショートクリップで解説しています!
流し見するだけでpythonをマスターできる動画シリーズを目指しています。