YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

【解説動画あり】リストの作成・要素へのアクセス|Python超入門シリーズ【第9回】

プログラムでは、取り扱うデータの種類によってデータ型というものが決まっています。

  • 数値⇒数値型
  • 文字列⇒文字列型
  • シーケンス型⇒複数のデータの並びなどなど…

今回は、シーケンス型の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をマスターできる動画シリーズを目指しています。

5min. python解説動画