在python中,我想得到一个单词在句子中的位置。匹配的字符串可以是几个单词
sentence = "Bloomberg announced today that Gordian Capital will implement the solution to help its clients pursue new fund opportunities faster."
search_str = "Bloomberg"
预期产出:
0
要匹配的字符串可以由多个单词组成。在这种情况下,我想得到开头的位置
search_str = "Gordian Capital"
预期产出:
4
搜索可以是特殊字符和数字的组合,例如$5.1 billion
。我试过这样的方法,但它把原来的句子分成了几个单词,我不知道如何处理n-gram的情况
result = [i+1 for i,w in enumerate(sentence.split()) if w == search_str]
任何解决方案都将不胜感激。谢谢
看起来已经完成了,只需要用
但有时,可能会出现一个空元素
为了避免这种情况,必须对列表进行筛选
所有这些你都可以写在一行中:
尝试枚举
由于您实际上只是在搜索任何搜索字符串中查找第一个单词的位置,因此我们也可以将其拆分,只需尝试匹配第一个单词即可
这里有一个解决问题的单行线:
结果:
这是一个有不止一个戈尔迪安大写字母的句子
结果:
注意:由于Python是区分大小写的,为了更好地匹配,我们将术语用小写字母表示
本部分:
在空白字符上拆分(默认情况下),然后抓取第一个项目并将其重新格式化为小写,以便与目标匹配
相关问题 更多 >
编程相关推荐