Pythonの勉強するよ【リスト編①】
どもども。
前回は例外について勉強しました。
【前回の復習】
・例外処理は、下の書き方で実装できる。
try:
例外が発生するかもしれないコード
except:
例外が発生した場合に実行したいコード
・例外が発生すると、try文のそれ以降のコードは実行されない
・try文内で実行した関数で例外が発生した場合も同様にexcept文で例外をキャッチできる
・特定の例外をキャッチしたい場合は、except文を
except exceptiontype as name:
という書き方にする。
今回からは、リスト型について勉強していきます。
4.1 そもそもリスト型ってなんぞ?
リスト型とは、複数の値を保持することのできる変数型のことです。
リスト型の使い方はとても簡単です。
【リスト型の使い方】
定義方法
変数名 = [要素1, 要素2, 要素3 ]
値の取り出し方
変数名[index]
animals = ['cat', 'dog', 'rat']
print(animals)
print(animals[0])
print(animals[1])
print(animals[2])
【実行結果】
['cat', 'dog', 'rat']
cat
dog
rat
リスト型に格納される値を要素といいます。この要素を取り出すために使うのがインデックスです。一番最初に格納されている要素を取り出すためのインデックスは0なので、気を付けてください。
また、Pythonのリスト型は、いろいろな変数型を同時に持つことができます。次の例では、1つのリストの中に、整数型、Boolean型、文字列を格納しています。
list = [100, True, 'Alice']
print(list[0] + 10)
if list[1]:
print(list[2])
【実行結果】
110
Alice
【Point】
・リスト型は、複数の値を保持することのできる変数型
【リスト型の使い方】
定義方法
変数名 = [要素1, 要素2, 要素3 ]
値の取り出し方
変数名[index]
・リスト型は、いろいろな変数型を同時に持つことができる。
4.1.1 インデックスを設定する際の注意
先ほど、要素の取り出し方を説明しましたが、その際に注意することがいろいろあります。
要素数以上の数を指定すると、エラーになる
リスト型はそのリストが持っている要素の数以上の値をインデックスに指定すると、IndexErrorというエラーが発生します。
animals = ['cat', 'dog', 'rat']
print(animals[3])
【実行結果】
Traceback (most recent call last):
File ".\test.py", line 3, in <module>
print(animals[3])
IndexError: list index out of range
整数値しか設定できない
要素を取り出すためのインデックスには、整数値しか設定できません。浮動小数点を設定した場合、TypeErrorというエラーが発生します。
animals = ['cat', 'dog', 'rat']
print(animals[1.0])
【実行結果】
Traceback (most recent call last):
File ".\test.py", line 3, in <module>
print(animals[1.0])
TypeError: list indices must be integers or slices, not float
負の値を設定することができる
インデックスには、負の値を設定することができます。負の値を設定すると、要素を後ろから取り出すことができます。要素の一番最後の値を取り出したい場合は、-1を設定すると取り出せます。
animals = ['cat', 'dog', 'rat']
print(animals[-1])
print(animals[-2])
print(animals[-3])
【実行結果】
rat
dog
cat
このように、入れる値によってはエラーになってしまったり、逆から値をとることができたりします。
特に、IndexErrorは、インデックスの値をベタ打ちで設定する際には注意しましょう。
【Point】
インデックスに値を設定する際には、以下を注意する
・要素数以上の数を指定すると、エラーになる
・整数値しか設定できない
また、負の値を設定することで、要素を逆から取得することができる。
4.1.2 リスト型の中にリスト型を入れる
リスト型の要素にはいろいろなデータ型を設定できるよー、という話をしましたが、リスト型も設定することができます。
animals = [['British Shorthair','American Shorthair','Bengal'],['Yorkshire Terrier','Shih Tzu','Beagle']]
print(animals)
【実行結果】
[['British Shorthair', 'American Shorthair', 'Bengal'], ['Yorkshire Terrier', 'Shih Tzu', 'Beagle']]
このようにリスト型の中にリスト型を設定した場合、要素は下のように取得します。
animals = [['British Shorthair','American Shorthair','Bengal'],['Yorkshire Terrier','Shih Tzu','Beagle']]
print('cats')
print(animals[0])
print(animals[0][0])
print(animals[0][1])
print(animals[0][2])
print('----------------')
print('dogs')
print(animals[1])
print(animals[1][0])
print(animals[1][1])
print(animals[1][2])
【実行結果】
cats
['British Shorthair', 'American Shorthair', 'Bengal']
British Shorthair
American Shorthair
Bengal
----------------
dogs
['Yorkshire Terrier', 'Shih Tzu', 'Beagle']
Yorkshire Terrier
Shih Tzu
Beagle
なんだかややこしそうですが、分解してみてみましょう。
まず、変数animalsはリスト型で、リスト型の要素を2つ持っています。便宜的に1つ目の要素をネコちゃんリスト、2つ目の要素をワンちゃんリストと呼びます。
animalsリストの要素を取得するには、今までと同じようにインデックスを設定します。実行結果の「cats」と「dogs」の後に表示されている部分がこれです。それでは、ネコちゃんリストとワンちゃんリストの要素を取得していきましょう。ネコちゃんリストから値を取得する場合、ネコちゃんリスト[index]という風にすればよいです。コード上でのネコちゃんリストは、animals[0]なので、animals[0][0]とすれば、ネコちゃんリストの最初の要素が取得できるわけです。ワンちゃんリストの要素を取得したい場合も同様です。
このようにリストの中にリストを持つ構造を2次元配列と呼んだりします。
いろいろな使い方ができるので、ぜひ覚えておきましょう。
【Point】
リスト型の中には、リスト型を設定することもできる。
変数名 = [ [a, b, c] , [A, B , C] ]
二次元配列の値を取得する場合、次のようにする。
変数名[indexA][indexB]
まとめ
いかがだったでしょうか。リスト型は何かと便利なデータ型なのでぜひ覚えておきましょう。
【まとめ】
・リスト型は、複数の値を保持することのできる変数型
定義方法
変数名 = [要素1, 要素2, 要素3 ]
インデックスに値を設定する際には、以下を注意する
・要素数以上の数を指定すると、エラーになる
・整数値しか設定できない
また、負の値を設定することで、要素を逆から取得することができる。
・リスト型の中には、リスト型を設定することもできる。
次回もリスト型についてさらに勉強していきます。ではでは。
P.S.
「十三機兵防衛圏」というゲームをやったのですが、個人的にかなり面白かったです!
ほとんどのゲームが3Dになっているのに、2Dで作成しているんですが、まあグラフィックがきれいなんですよ。個人的には夕日のグラフィックがすごい好きですね。
SFとタワーディフェンス系のゲームが好きな方にはオススメなのでぜひ!
崩壊編で「渚のバカンス」が流れたとこ、めっちゃよかったなぁ。。
気に入ったらぜひサントラも買ってみてください。「渚のバカンス」のフルバージョンも聞けます!
この記事が気に入ったらサポートをしてみませんか?