06 : 言語処理100本ノックでPythonのお勉強

第一章 : 06 集合

"paraparaparadise"と"paragraph"に含まれる文字bi-gramの集合を,それぞれ, XとYとして求め,XとYの和集合,積集合,差集合を求めよ.さらに,'se'というbi-gramがXおよびYに含まれるかどうかを調べよ.

集合はPythonだとset()関数を使うことで作成することができます。

プログラムは以下のようになります。n_gram()関数は05で作成したプログラムを使います。

l = 'paraparaparadise'
l2 = 'paragraph'

X = set(n_gram(l, 2))
Y = set(n_gram(l2, 2))

# 和集合
OR = X | Y
print(OR)

# 積集合
AND = X & Y
print(AND)

# 差集合
SUB = X - Y
print(SUB)

# 'se'が含まれているか
result = 'se' in X
print(result)
result = 'se' in Y
print(result)