1 もくじ
2 リストとは
リストは、変数をセットで管理できる便利なものです。 例えば、以下のようにキャラクターの持ち物を表すことを考えましょう。
これを、リストを使うとスマートに記述できます。
ここで、itemsがリストであり、,で区切られた一つ一つを要素と言います。
図の[0]や[1]の番号をインデックスと呼び、住所でいえば番地のようなものです。
リストの各要素を取り出したいときは、以下のようにインデックスで指定します。
items = ["伝説の釣り竿","大容量のバケツ","丈夫な釣り糸","大きな釣り針","高級な釣り餌"]
print(items[0])
print(items[1])
print(items[2])実行結果
伝説の釣り竿
大容量のバケツ
丈夫な釣り糸
いちばん初めの要素のインデックスは、1ではなく0である点に注意!!
また、リストに含まれる要素の数を要素数と言い、len()を使ってその長さを取得できます。
実行結果
5
- Challenge5-1 要素が食べ物の名前である要素数6のリスト「foods」を作成しましょう。
- Challenge5-2 foodsから、4番目の要素を
print文で出力しましょう。
解答例
Challenge5-1: foods = ["すし","てんぷら","すきやき","やきにく","だしまき","ラーメン"]
Challenge5-2: print(foods[3]) #0始まりなので4番目は[4]ではなく[3]
3 2次元リスト
リストの中にリストを入れ子にすることもできます。これを、2次元リストといいます。
見づらいので、以下のように改行することもできます。
このとき、2行目~4行目はインデントを用いて見やすく書くのが一般的です。
先ほどと同様にインデックスを指定して取り出すと、中のリストが取り出せます。
実行結果
[1,2,3]
これをさらにインデックスで指定すれば、要素を取り出せます。
実行結果
3
このように、arr[n][m]の形で、2次元リストの要素を取り出すことができます。
2次元リストの使いみち
2次元リストはさまざまな場面で活用されていますが、そのひとつにこのようなrpgのマップがあります。
このマップは、マップチップと呼ばれる小さなパーツの組み合わせでできています。
そこで、どの場所にどのチップを置くかのデータを2次元リストで管理します。 例えば、0なら草原、1なら砂、3なら水というふうに対応しています。
map_data = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[2, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
]このプログラムは、ゲームづくり編で実際に制作する予定です。