読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

リスト内包表記なる魔界記法 その2:辞書型

shuzo-kino.hateblo.jp
の続きです。
リスト内方表記で辞書型のデータを作る事もできます。
とはいえ、for節特有の癖から意図しない挙動をする可能性も。

実際のところ

キーと値を通常の辞書型と同様の並びで実装できます。

{x:y+3 for x in "foobar" for y in range(0,6,1)}
#>> {'r': 8, 'b': 8, 'o': 8, 'f': 8, 'a': 8}

とはいえ……後置のforの要素は末尾しか返さないという、致命的な挙動があったりします。
キーをリスト型から生成したい場合なんかには向きませんね……。

{x:y for y in "foobar" for x in range(0,6)}
#>> {0: 'r', 1: 'r', 2: 'r', 3: 'r', 4: 'r', 5: 'r'}

{y:x for x in "foobar" for y in "foobar"}
#>> {'r': 'r', 'b': 'r', 'o': 'r', 'f': 'r', 'a': 'r'}