集合内包表記
関数型プログラミングと内包表記のお話から発展したことのメモ 内包表記は集合を定義する記述の仕方の一つ
集合とは
集合とは, ものの集まりである. 数学的に記述する場合は
のようになる.
Pythonの場合
S = {0, 1, 2, 3} # {0, 1, 2, 3}
のようになる.
ここで, 集合を構成する1つ1つのものを要素または元と呼ぶ.
このとき, xが集合Sの要素であることを
xが集合Sの要素ではないことを
のように表記する.
Pythonの場合
0 in S # True 5 in S # False 5 not in S # True
のようになる.
要素の並べ方
ここまで集合 S はすべての要素を記述してきた. このような要素の並べ方を集合の「外延的定義」と呼ばれる.
一方で
のように記述することもできる. このような要素の並べ方を集合の「内包的定義」と呼ばれる.
Pythonの場合
S = {x for x in range(0, 4)} # {0, 1, 2, 3} S = {x for x in range(0, 10) if 0<= x <= 3} # {0, 1, 2, 3}
のようになる. 今回の例では, range()
関数で事足りているため, 2行目のような書き方をする必要はないが, 条件分岐を使用することで, 内包的定義のように記述することが出来る.