【独学】建築設計でかんたんPython入門!:サヴォア邸の情報で理解するデータ型 その3

Python建築

ノンプログラマーのための「建築で理解するPython入門」の基礎編7回目です。今回はPyCharmを使ってPythonのデータ型であるdict型を解説します。

今回も建築の情報を使って解説したいと思います。これまでに説明した様々なデータ型のデータを管理したいときに便利なデータ型です。

スポンサーリンク

建築情報でざっくり分かるデータ型のはなし!その3

これまでに説明したデータ型は次のとおりです。

  • str型:文字列型。住所とかなら数字があっても文字列型になる。
  • int型:整数型。計算に使える。
  • bool型:正しいか間違っているかを示すtrueとfasleの2パターン。
  • list型:様々なデータ型のデータを入れることができる箱のようなもの。

データ型の違うたくさんデータがあっても順番を付けて整理できるのでlist型は非常に便利です。しかし、リストの中の順番を表すインデックスで管理するため、様々なデータ型を扱うには少々向いていない場合があります。

list型のデータしか知らないとデータの管理が難しい?

インデックスだけを見てもデータがどんなものか分からないですよね。例えば次の例を見てみましょう。

これくらいの短いリストであればはじめから順に0, 1, 2, 3と数えられますね。なんとか大丈夫だと思います。

list型のデータの中にlist型のデータをいれる…!?

ここから新しい内容ですが、「list型のデータの中にlist型のデータを入れる」ことができます。長さの違うリストを入れることもできますし、list型以外のデータを入れることもできます。

まずここでは、list型のデータの中にlist型のデータを入れてみましょう。

この変数listsはlist型のデータを持っています。list型のデータは角かっこ[ ]で囲われていて0から始まる順番がついているデータでしたね。そして、変数listsに代入されているlist型のデータの1つ1つもlist型のデータ型というわけです。(ネスト構造や入れ子構造と呼びます)

PyCharmで実行してみましょう。DataType3.pyというPythonファイルを作成してコードをコピペして上書き保存、PyCharm内のコマンドプロンプトから「py DataType3.py」で起動してみました。次のように出力されますね。

ここでちょっとおかしいなとなります。落水荘のリスト内に”日本”というデータが入っていますね。データを間違えてしまいました。ではこのリスト内のデータの更新をしようと考えたときにパッとインデックスが思いつきますか?私はこうなります。

パンナ
パンナ

えっと入れ子になっててわかりにくい。変数listsの中の0,1……2番目のデータの0……2番目のデータかな?

この長さならギリわかるけどこれ以上長くなったら間違えそう……

list型のデータのネストが深くなってくると、とにかく分かりにくくなってきます!
他の整理方法は無いのでしょうか!

ここでようやくdict型のデータが登場します。

list型のいいところ

同じ種類のデータがたくさんある場合はlist型が非常に便利です。

例えば以下のようにたくさんの名前データを入れて、ランダムにインデックスで名前を選びたい場合などは圧倒的に便利です。

dict型のデータの扱い方を知ろう

dict型のデータは次のような構造です。

dict型のデータは波かっこ{ }でキー:バリューをはさむ!
{ key01 : value01 , key02 : value02 , …… , keyN : valueN }

一旦無視でいいですが、キーには変更不可能なオブジェクトしかつかえないというおまじないがかかっています。これはまた別の機会に説明しますので、今回はdict型のデータの作り方を理解しましょう。

キーとバリューでコロン「:」をはさんで、それを波かっこで囲えばいいんですね。複数のキーとバリューのセットがあればカンマ「,」で区切りましょう。

dict型のデータ構造をなんとなく理解できました。

dict型のデータを作成してみる

早速Pythonコードを書いてみましょう。

DataType3-2.pyを作成してコードを実行してみましょう。データ型を表示するtype関数を使って変数villa_savoyeのデータ型を確認したら「dict」と表示されるでしょうか。

おめでとうございます!
dict型のデータを作成
して変数代入することができました。

そして、ここで更にワンステップ上がりましょう。

list型のデータで管理が難しかった”あのデータ”をdict型で表すとどうなる?

先ほどのlist型データをもう一度書きます。

やはりlist型のデータの中身をインデックスだけで判断しようとするのは難しいですね。一旦表にして確認しましょう。

建築建築家所在地面積
サヴォア邸ル・コルビジェフランス440
ファンズワース邸ミース・ヴァン・デル・ローエアメリカ145
落水荘フランク・ロイド・ライトアメリカ495

だいぶ見やすくなりました。このままの形でデータ化できたらいいんですけどね…

お察しの通り、dict型ならば可能です!

下記のコードを見てください。

dict型のデータとすると、変数の中にあるデータがどんなものなのかキーを使って整理することができます。

サヴォア邸の建築家を表すデータを取ってきましょう。PyCharmでDataType3-3.pyというPythonファイルを作成して実行しましょう。

次のようにサヴォア邸の建築家の名前が表示されました。

Pythonにはもっと高度なデータの扱い方もあります。建築の情報を自在に操れるように基礎をしっかり固めましょう。

サヴォア邸の情報とデータ型の関係その3のまとめ

今回はdict型の説明を行いました。

  • dict型のデータは波かっこ{ }でキー:バリューをはさむ
  • 表形式のような複雑なデータも整理できる

データに合わせてデータ型を選ぶ必要がありますね。

「【独学】建築設計でかんたんPython入門!」シリーズのほかの記事はこちらからどうぞ。

コメント

タイトルとURLをコピーしました