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が表示