Python Comprehensionシリーズ

Codewarsにて、よく使うComprehensionシリーズは↓↓

  • [] : Dictionary

  • {} : Set or Dictionay

  • () : Genarator


Dictionary Comprehension

例えば、0~9までの数字で偶数のリストを作成する場合。

 l = [i for i in range(10) if i % 2 == 0 ]
 >>> l : [0, 2, 4, 6, 8]


Set Comprehension

例えば、要素が重複するリストから重複しない集合を作成する場合。

s = {i for i in [1,1,1,1,2,2,2]}
>>> s : {1, 2}

この場合、set()を使えばできるけど、より複雑な処理の場合、Comprehensionを使った方がいいこともある。

ケースバイケース。


Dictionary Comprehension(Set Comprehensionとの違いは、key:valueで指定)

例えば、keyが0-4までの値, valueがkey2倍のDictを作成する場合。

d = {i:i*2 for i in range(5)}
>>> d : {0: 0, 1: 2, 2: 4, 3: 6, 4: 8}


Generator Comprehension

例えば、0-9の数字のうち、3の倍数を吐くジェネレータを作成する場合。

g = (i for i in range(10) if i % 3 == 0)
for i in g:
    print(i)
>>> 0, 3, 6, 9が表示