1. はじめに
この記事は、Pythonにちょっと慣れてきてぶつかりそうな壁のひとつであるリストについてを簡単にまとめたものになります。こういう感じなんだなぁとなれば幸いです。
なお、変数やprint、inputなどについてはなんとなく理解している体で説明します。
サンプルコードの実行にはこのGoogle Colaboratoryを使いました。
2. リストって?
複数の要素から構成され、要素が順番に並んだもののことです。
リストの特徴
- どのような型でも格納可能
- 異なる型も同時に格納可能
- 可変長
- インデックス(添え字)は0から始まる
インデックスって何?要素って何?何でn-1なの?
これじゃちょっと分かりにくいかもしれないので少し分かりやすく置き換えてみます。
「list」という名前のマンションがあったとします。
インデックスを部屋番、要素を住人と置き換えてみます。
そうすると、listマンションの0号室には佐藤さんが、1号室には鈴木さん、n-1号室には田中さんが住んでいることが分かります。
リスト名=建物名、インデックス=部屋番、要素=氏名と考えてみるとちょっと分かりやすい...かもしれないです。
では、なぜn-1なのか。
インデックスこと部屋番が0から始まるからです。
インデックスが何故0から始まるのかは割愛します。
例えばこのlistマンションには10人の住人が住んでいるとします。
田中さんが10人目の住人と仮定した場合、残念ながら部屋番は0から始まるため9号室に住んでいることになります。
つまり0からカウントしているのでマイナス1することで帳尻をあわせている...みたいな認識でいいと思います。
3. まぁやってみよう
座学ばかりではつまらない、いまいち分からないよ。
それはそうなので、実際に動かしてみます。
リストを作ろう
まずはリストの作成、所謂マンションの建設及び住人をぶち込んでいきます。
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
上記のように10人分記述します。
「apa」はリストの名前、つまりマンション名みたいなものです。
これでapaマンションを建設できた感じです。
注意
「'」(シングルクォーテーション)と「,」(カンマ)の位置に気を付けよう!
表示してみよう
リストの作成ができました。
では表示してみましょう。住人を呼び出してみましょう。
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
print(apa[3])
渡辺
printで表示して、「渡辺」がでてきたら成功です。
「apa[3]」の「[ ]」の中で、呼び出したい住人を指定しています。
インデックス、部屋番のことです。
余裕があれば、いろんな部屋番をぶち込んで呼び出してみて、思った通りの住人が表示されていれば花丸です。
何人いるんすか
じゃあ仮に、このapaマンションの住人数が分かんねぇから知りてぇ!の状態だったときどうするか。
「len」という関数を使うことで解決します。
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
print(len(apa))
10
「len」はリストの要素数を取得する関数です。
言い換えると、このマンションに何人住んでいるかを教えてくれる感じです。
今回は10人住んでいれば成功です。
全員呼び出そう
一気に全員呼び出したい。そんなときがあるかもしれません。
しかし、printを羅列してゴリ押すのではなく「for」または「while」を使ってやってみましょう。
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
for i in range(0,10,1):
print(apa[i])
print(i)
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
i = 0
while i < 10:
print(apa[i])
i = i + 1
佐藤
鈴木
高橋
渡辺
山本
中村
伊藤
小林
加藤
田中
for 変数名 in range(初期値,終了値,増減値)
for文はこんな感じで書きます。
今回は変数名をi、初期値を0、終了値を10、増減値を1にしています。
なのでiは最初0からスタートし、1ずつ増えて10になったら終了です。
ようは10回同じ処理を繰り返す感じです。
しかし、0<10なので0から9までを繰り返してくれます。
余裕があれば、終了値を変更してどうなるか試してみてください。
9なら「加藤」まで、11ならエラーがでるかなと思います。
while 条件式
while文はこんな感じです。
今回は条件式の部分がi<10にしています。
動きとしてはfor文とそんなに変わらないです。
ただしwhile文は、増減値を繰り返しの中に書かないといけないので注意です。
もし「<」ではなく「<=」で記述したい場合は、「i<=9」にしましょう。
「=」がついている場合、9も含むことになるからです。
「i<=10」にしていると10も含んで、0から10を、つまり11回同じ処理をすることになりエラーがでてしまうはずです。
ちょっと応用してみよう
応用というよりは、いままで書いてきたことを組み合わせる感じです。
全員呼び出そう、では住人の人数が分かっている前提で進めていました。
じゃあ、逆に人数が分からないけど全員呼び出したい。
そんなときはlen関数を先ほどのforまたはwhileのやつに書き足しましょう。
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
for i in range(0,len(apa),1):
print(apa[i])
print(i)
apa = ['佐藤','鈴木','高橋','渡辺','山本','中村','伊藤','小林','加藤','田中']
i = 0
while i < len(apa):
print(apa[i])
i = i + 1
佐藤
鈴木
高橋
渡辺
山本
中村
伊藤
小林
加藤
田中
こんな感じです。
さっきとほぼやってることは変わりません。
繰り返す回数の条件部分と表示する部分をlen関数に変更しただけです。
動作としては先ほどと同じですが、こちらの場合、住人が増えたときリストに追記するだけで変更が済むという利点があります。
4. おわりに
今回はPythonのリストについて、すごく簡単にまとめました。
ちょっとでもふーんなるほどね、となれば幸いです。
他にもプログラム内でリストに追加できたり、色々できたりするので興味のある方はぜひ調べてみてください。

