2016/11/16

[py]連想配列ではなく「辞書」

やりたいのは、構造体だったのだ。
classで実現するのだろう、きっと。

それをグローバル変数でいくつか持っておいて、MQTTでメッセージを受信したとき、受信内容からグローバル変数の内容を参照する、というようなことをやろうとしている。
構造体は後回しにするとして、グローバル変数の中から期待するデータを取り出す、という検索のしくみが必要になるのだ。

データをどのくらいの期間つかうことになるのか見積もりできてないのだけど、短期間でよかったり、データ量が少ないのであれば連想配列がよいのかな、と思った。
C++でいうところの、std::mapだ。

 

pythonだと、辞書、というそうだ。
そして、オブジェクトでデータを扱うからか、数値だろうと文字列だろうと扱えるようだ。

ary = {'val1': 2, 'mon': 'ロンドン橋'}
print ary['val1']
print ary['mon']

 

ただ、キーは文字列限定のようである。
まあ、数字をキーにしたかったら、数字を文字列に変換させればよいだけのことか。

 

渡す値は、

{ キー : 値 }

というようにコロンで分けられている。
これを、間違えてコンマにしてしまうと、「dictionary update sequence element ~」というエラーが出て悩むことになる(pyCharmでもwarningが出ない)ので、注意しよう(10分くらい悩んでいた)。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。