如何在python中比较这两个字符串?

时间:2015-06-15 21:44:38

标签: python string

在抓取RSS Feed中,我不希望将重复的项目添加到我的列表中。问题是我的if title not in mylist行未检测到某些重复项,因为它们略有不同。尽管如此,这两个新闻项目基本相同。看看这两个。

"Kom igjen, norsk ungdom, de eldre trenger oss!"
"Kom igjen norsk ungdom, de eldre trenger oss"

如您所见,第一个在Kom igjen之后有逗号而第二个没有逗号,并且在结尾处有一个感叹号。

由于没有其他唯一ID使单个项目唯一,我不知道如何检测上述重复项。

2 个答案:

答案 0 :(得分:4)

Python有一个SequenceMatcher内置:

from difflib import SequenceMatcher
SequenceMatcher(None, "Hello you!", "Hello you").ratio()
0.9473684210526315
SequenceMatcher(None, "Apple", "Orange").ratio()
0.18181818181818182

所以你可以循环所有并将比率与某个阈值进行比较。

答案 1 :(得分:1)

您可以在将新闻添加到列表中之前使用str.translate方法来移除标点符号:

>>> s1.translate(None, string.punctuation)
'Kom igjen norsk ungdom de eldre trenger oss'

在这种情况下,您可以根据自己的字母比较文本。

在python 3中,你可以这样做:

>>> s1.translate(dict.fromkeys(map(ord,string.punctuation),None))
'Kom igjen norsk ungdom de eldre trenger oss'