![]() |
ノート/Pythonの辞書型へのデータの追加http://pepper.is.sci.toho-u.ac.jp/pepper/index.php?%A5%CE%A1%BC%A5%C8%2FPython%A4%CE%BC%AD%BD%F1%B7%BF%A4%D8%A4%CE%A5%C7%A1%BC%A5%BF%A4%CE%C4%C9%B2%C3 |
![]() |
ノート/Python
訪問者数 1876 最終更新 2010-02-08 (月) 10:09:13
辞書は便利だが、tutorialには追加の仕方が書いていない。
たとえばこのページには、1要素の追加と、updateメソッドを使った別辞書の追加の方法が書いてある。
dict={"yamada":75, "endou":82}
があるとき、それに1つの要素 "itou":89 を追加するには、単純に
dict["itou"] = 89
とすればよい。何だ、簡単だ。
ちなみに、最初に空の辞書を作るには、
dict = {}
dict={"yamada":75, "endou":82}
があるとき、それに別の辞書
{"honda":52, "tanaka":78}
を追加するには、
dict.update({"honda":52, "tanaka":78})
とすればよい。
たとえば、このページを参照。
dict = {'a': 15, 'c': 25, 'b': 33, 'g': 11, 'f': 44}
があるときに、これを(1)キーの順番で、また(2)値の順番で、ソートしたいと思うことがある。
まず、dict.items()を作る。これは(キー,値)のタプルを返す。
ここへ、lambda x,y: cmp(x[1], y[1]) のような関数を使って、sortせよ、というのである。つまり、
sorted(dict.items(), lambda x,y : cmp(x[1], y[1]))
とする。これはタプルの[1]つまり値を比較してソートするので、
[('g', 11), ('a', 15), ('c', 25), ('b', 33), ('f', 44)]
となる。他方、もし cmp(x[0], y[0]) とすると、タプルの[0]つまりキーを比較してソートするので、
[('a', 15), ('b', 33), ('c', 25), ('f', 44), ('g', 11)]
となる。
別法として、こちらのページには、
d = {'A':500, 'B':200, 'C':300, 'D':100, 'E':400} for k, v in sorted(d.items()): print k, v
や
for k, v in sorted(d.items(), key=lambda x:x[1]): print k, v
が書いてあった。その他、いろいろ方法が考えられそうだ。
このページには、いくつかの面白い操作が載っている。
など。