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)