Python 比较数字串和数字字串

Python 比较数字串和数字字串,python,Python,我有两条线。一个包含数字,另一个包含单词。我无法预测哪个是哪个,也无法预测数字的大小 S1 = "thirteen things that don't make sense" S2 = "13 Things That Don't Make Sense" 显然 S1 != S2 在python中测试两个字符串是否包含相同信息的最佳方法是什么?此模块可能会帮助您: 您可以创建一个字符串映射,该映射应被视为等同于其他字符串,然后转换每个句子以消除大小写差异,并在比较之前使用映射替换单词,例如:

我有两条线。一个包含数字,另一个包含单词。我无法预测哪个是哪个,也无法预测数字的大小

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

S1 != S2

在python中测试两个字符串是否包含相同信息的最佳方法是什么?

此模块可能会帮助您:


您可以创建一个字符串映射,该映射应被视为等同于其他字符串,然后转换每个句子以消除大小写差异,并在比较之前使用映射替换单词,例如:

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)
这里困难的部分来自于创建一个全面的
eq\u图
,这是一个可能有用的模块


您可能还想在此处执行一些操作来删除标点符号,您可以通过添加类似于
s=re.sub(r'[^\w\s]+','',s)
的内容来完成此操作,以
convert()

您是否尝试测试它们是否具有相同的信息?我很确定他们确实有信息。:-)数字可能在哪个范围内?0到?我不确定您想要什么,您想要一种方法来比较它们,就好像数字(13)和字母(13)是一样的吗?或者你只是想检查一下它们是否不一样。。这是一个非常简单的
print(S1==S2)
好主意,但我担心它可能会把“13”中的“1”换成“1”,把“3”换成“3”,然后你就不会把“13”换成“13”?没关系,我知道这不会发生,因为它只会把字母转换成数字。。。。书写得很好,非常优雅。@InbarRose-即使它从数字转换为字母,也不会引起问题,因为在执行替换之前,句子被拆分为空格,然后替换整个单词。该项目是否有文档?