この記事はPythonの配列について書いています。
わかりやすく書いたものになりますので、初心者向けの記事です。
【Python】配列
プログラミングにおける配列とは、変数のような入れ物の中に、規則に従った順番にあるいはランダムにデータを入れる構造体を言います。
例えば、変数が10個だけなら、変数を10種類用意すればいいのですが、これが100個、1000個と増えていった場合、変数もその種類だけ用意しなくてはなりません。
ですが、配列を使用することで、変数っぽい入れ物を1つ用意すれば良いわけですから、これほど便利なものはありません。
格納されたデータは要素と呼ばれ、Pythonでは要素を持つ構造体はリストだけでなく、タプルやセット、ディクショナリー(辞書)があります。
特に、データベースからデータを受け取るようなプログラムではなくてはならない存在です。
リスト型
リスト型は、インデックスと要素から構成されています。
まずは、このコードを。
[codebox title=”Python”]
j_west = ["シゲちゃん","のんちゃん","りゅうせい","きりやま","じゅんた","はまちゃん","かみちゃん"]
print (list_sample[3])
[/codebox]
1行目でj_westという入れ物に、ジャニーズwestのメンバーを入れ(順不同ですよ!)、2行目でそのindex3の要素を出力するだけのプログラムです。
indexは0から始まるため、3番目の要素のりゅうせいではなく、index3(4番目)のきりやまくんが出力されました。
リストの構造を簡単な図にしてみました。
図に書いてあるとおり、数字がindex、ひらがなが要素です。
【Python】多次元配列
Pythonでは(Pythonに限らずですが)多次元配列を使用することが出来ます。
高次元になるに連れて、このデータはどこに格納されているんだろう?
と迷うことが多くなってきます。
「配列の中に配列を」
これを想像できれば容易いのですが、なかなか理解しづらいものです。
しかし、3次元配列までなら簡単に、どこにデータが格納されるのかがわかりやすいです。
【Python】2次元配列を簡単に!
とりあえず、例によってこのコードを(笑)
[codebox title=”Python”]
list_sample =[["しげちゃん","のんちゃん","りゅうせい"],\
["きりやま","じゅんた","はまちゃん"], # \(バックスラッシュ)は¥のことです。 # \
["かみちゃん","5月20日","炎の転校生DVD"]] # 1行が長くなる場合等、改行し見やすくできます。
# 行の途中でも、#と#の間に文字を入れることでコメントを入れることが出来ます。
print (list_sample[2][0])
[/codebox]
このコードの実行結果は、「かみちゃん」になります。
不思議に思うかも知れませんが、データの格納は図のようになっています。
図のように、2次元配列のindexは[y][x]で表します。
今になって気がついたのですが、tableタグを使えば、こんな微妙なパワーポイントの画像を出さなくてもよかったですね・・・・(笑)
2次元配列をなんとなく覚えられたでしょうか?
【Python】3次元配列をより簡単に!
3次元配列を覚えるのは、なかなか難しいですと思いがちですが、考え方次第で理解も容易くなります。
では、次のコードを。
[codebox title=”コード”]
list_sample =[[["しげちゃん","のんちゃん","りゅうせい"],\
["きりやま","じゅんた","はまちゃん"],\
["かみちゃん","5月20日","炎の転校生DVD"]],\
[["GE"],["モンハン"],["無双"],\
["KH"],["FF"],["DQ"],\
["KOF"],["地球防衛軍"],["バイオ"]],\
[["アンパンマン"],["ドキンちゃん"],["バイキンマン"],\
["メロンパンナ"],["カレーパンマン"],["食パンマン"],\
["バタコさん"],["チーズ"],["ジャム親父"]]]
print (list_sample[2][0][0])
[/codebox]
おわかりいただけるでしょうか?
後述しますが、要素を種類ごとに分けたのには理由があります。
2次元配列では、[y:index][x:index]だったのに対し、3次元配列では[z:index][y:index][x:index]と表記されます。
小難しいと思っている貴方。
きっとそんなことはありません。
3次元配列は、本に例えれば解りやすいはずです。
あの表が0枚目の紙だとすると、zのindexは1枚目、2枚目とページを増やしていけば良いのです。
つまり、この3次元配列のコードは、0ページ目がジャニーズwest、1ページ目がゲーム、2ページ目がアンパンマンの登場人物となっているわけです。
3次元配列の要素の場所は、[ページ数][行][列]という構造だと思えば、すごくわかりやすい・・・・はず。
【Python】配列は考え方次第
データベースのやり取りでは、確実に配列を使用します。
2次元配列の要素の格納場所、3次元配列の要素の格納場所の理解は得られたでしょうか?
3次元までは簡単に理解することができます。
基本の考え方は「配列の中に配列を」ですが、ここを理解できれば、配列を簡単に理解することができるはずです。
最後までお読みいただきありがとうございました。