2.09.2014

Dictionary Comprehensions in Python

Python: 辞書内包表記

 

Python3 および Python2.7 では集合と辞書の内包表記を利用でき、よりシンプルな表現ができるようになった。

 

逆引き(inverse)辞書を作る
>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>> {v: k for k, v in d.items()}
{'a': 1, 'c': 3, 'b': 2}

dict#iteritems は Python3 では廃止され、dict#items でも同等の性能が出るようになった。

 

リストから辞書を生成
>>> {x: x for x in ['a', 'e']}
{'a': 'a', 'e': 'e'}

 

ちなみに、辞書のキーが全て文字列なら、このような方法で複数の辞書をマージすることも可能。

>>> dict({x: x for x in ['a', 'e']}, **{v: k for k, v in d.items()})
{'a': 1, 'c': 3, 'b': 2, 'e': 'e'}

 

 

References

0 件のコメント:

コメントを投稿