[Python] 辞書内包表記(dictionary comprehension)について 1

Share on Facebook
Pocket
LINEで送る
Bookmark this on Google Bookmarks

リスト内包表記のように。

辞書型でもリスト内包表記のように記述できる。

辞書型を定義すると、

In [1]: dic = {"data0": 0, "data1": 1, "data2": 2, "data3": 3, "data4": 4, "data5": 5, "data6": 6, "data7": 7, "data8": 8, "data9": 9}

In [2]: dic
Out[2]:
{'data0': 0,
 'data1': 1,
 'data2': 2,
 'data3': 3,
 'data4': 4,
 'data5': 5,
 'data6': 6,
 'data7': 7,
 'data8': 8,
 'data9': 9}

のようにするとやっぱりスマートじゃない。リスト内包表記の時のようにfor文で書くと

In [1]: dic = {}

In [2]: for x in range(0, 10):
   ...:     dic["data" + str(x)] = x
   ...:

In [3]: dic
Out[3]:
{'data0': 0,
 'data1': 1,
 'data2': 2,
 'data3': 3,
 'data4': 4,
 'data5': 5,
 'data6': 6,
 'data7': 7,
 'data8': 8,
 'data9': 9}

とやっぱりスマートじゃない。というわけで、リスト内包表記と使い方はほぼ変わらないのだけど

In [1]: dic = {"data" + str(x): x for x in range(0, 10)}

In [2]: dic
Out[2]:
{'data0': 0,
 'data1': 1,
 'data2': 2,
 'data3': 3,
 'data4': 4,
 'data5': 5,
 'data6': 6,
 'data7': 7,
 'data8': 8,
 'data9': 9}

と一行で書ける。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です