我有一个存储已定义关键字的列表,例如:
keywords = [
"white shark",
"tiger shark",
"funnel web spider",
"inland taipan"]
现在我做了一个句子
str = "A tiger shark spotted here, and a white shark, and a funnel web spider"
从这个句子中,我想产生一个结果["tiger shark", "white shark", "funnel web spider"]
。关键词出现在句子中,其顺序与它们在句子中的顺序相同。
然后,我做了一个这样的代码
for i in keywords:
if not str.find(i) == -1:
result.append(i)
这将给我["white shark", "tiger shark", "funnel web spider"]
,顺序与我的预期结果不同。我的错误很明显。你知道吗
所以我的问题是如何获得正确的结果顺序。我认为唯一的方法是使用字符串遍历关键字列表。但我认为这是相当复杂的,因为它涉及许多组合。有什么帮助吗?非常感谢。你知道吗
你可以建立一个列表(索引,关键字)和排序。然后从匹配的元组中提取关键字。你知道吗
也可以使用正则表达式(从re模块中):
这是因为您是按
keywords
的顺序追加它们,相反,我们应该将它们的外观索引保存在my_str
,以便以后根据它们在my_str
中的出现情况对单词进行排序相关问题 更多 >
编程相关推荐