0

私は2つの弦を持っています。1つには数字が含まれ、もう1つには単語が含まれます。どれがどれか、数の大きさも予測できません。

S1  = "thirteen things that don't make sense"
S2 = "13 Things That Don't Make Sense"

明らかに

S1 != S2

2つの文字列に同じ情報が含まれていることをPythonでテストするための最良の方法は何ですか?

4

2 に答える 2

1

このモジュールはあなたを助けることができるかもしれません:

http://sourceforge.net/projects/pynum2word/

于 2012-08-01T16:53:04.463 に答える
1

他の文字列と同等と見なされる文字列のマッピングを作成し、各文を変換して大文字と小文字の違いを取り除き、比較する前にマッピングを使用して単語を置き換えることができます。次に例を示します。

S1 = "thirteen things that don't make sense"
S2 = "13 Things That Don't Make Sense"
eq_map = {'one': '1', 'two': '2', 'thirteen': '13'}

def convert(s):
    s = s.lower()
    return [eq_map.get(w, w) for w in s.split()]

assert convert(S1) == convert(S2)

ここで難しいのは、 CosmicComputer がリンクeq_mapしたモジュールが役立つ可能性がある包括的な を作成することです。

句読点を削除するためにここで何かをしたい場合もありs = re.sub(r'[^\w\s]+', '', s)ますconvert()

于 2012-08-01T16:56:24.547 に答える