くり返しとデータの持ち方

INPUT · スライド

番号で取り出す

01 / 07

1つだけ欲しいとき

for はリストの中身を全部回してくれる。でも「2つめだけ見たい」ということもあるよね。

そんなときは番号を指定して取り出す。リストの名前のうしろに、角かっこで番号を書くんだ。

02 / 07

番号は0から数える

ここが最初の関門。いちばん前は 1 番ではなく 0 番だよ。

だから3つ入っているリストの番号は 0 1 2 になる。日常の数えかたと1つずれるので、慣れるまでは指を折って確かめよう。

kudamonos = ["りんご", "みかん", "ぶどう"]print(kudamonos[0])print(kudamonos[1])print(kudamonos[2])

実行結果

りんご
みかん
ぶどう

03 / 07

なぜ0からなのか

番号は「何番め」ではなく、「先頭からいくつ離れているか」を表していると考えると腑に落ちる。

先頭は先頭から0つぶん離れているので 0。その次は1つぶん離れているので 1。距離を数えているんだね。

納得できなくても大丈夫。使っているうちに指が覚える部分でもあるよ。

04 / 07

うしろから数えることもできる

Pythonには親切な書きかたがある。マイナスを書くと、うしろから数えてくれる。

[-1] がいちばん最後、[-2] がその1つ前。中身が何個あるか知らなくても最後をつかめるんだ。

これは他の多くの言語には無い書きかた。Pythonらしさのひとつだよ。

kudamonos = ["りんご", "みかん", "ぶどう"]print(kudamonos[-1])print(kudamonos[-2])

実行結果

ぶどう
みかん

05 / 07

無い番号を指すと怒られる

3つしか入っていないのに [3] を指すとどうなるか。エラーになってプログラムが止まる。

「番号が範囲の外に出ている」という意味だよ。最後の番号は個数より1つ小さいので、うっかり1つ大きい番号を書いてしまうのは定番のつまずきなんだ。

kudamonos = ["りんご", "みかん", "ぶどう"]print(kudamonos[3])

実行結果

IndexError: list index out of range

06 / 07

取り出したものはふつうの値

取り出したあとは、リストのことは忘れていい。中身がただそこにあるだけだよ。

変数に入れてもいいし、計算してもいいし、if で比べてもいい。ここまでに覚えたことが全部そのまま使えるんだ。

tens = [80, 95, 60]goukei = tens[0] + tens[1]print(goukei)

実行結果

175

07 / 07

まとめ

  • kudamonos[0] … 先頭。0から数える
  • kudamonos[-1] … いちばん最後
  • 無い番号を指すと IndexError

次は、取り出すだけでなく中身を入れかえたり足したり消したりする方法を覚えるよ。