在Python中搜索列表以查找某个单词的位置

时间:2015-08-11 22:01:18

标签: python

所以我有一个字符串,我已经拆分并从中创建了一个Python列表。

我现在需要找到该列表中某个单词的位置。

我有的问题:我正在寻找的单词在列表中出现两次。我的代码带回了第一个单词的位置,但它没有继续并带回另一个位置。

示例:我踢足球的主要原因是因为我喜欢足球。

它将找到第一个足球但不是第二个。帮助!

这是我的代码:

sentence = " The main reson that i play football is because i love football"
sentence = sentence.split()

print(sentence.index("football"))

3 个答案:

答案 0 :(得分:2)

在下面的代码片段中,我将在列表中包含“足球”的索引。

s = 'The main reason that i play football is because i love football.'
words = s.split()
i=[ind for ind,p in enumerate(words) if p=='football']

答案 1 :(得分:0)

import re

looking_for = 'football'

in_text = 'The main reason that i play football is because i love football.'

without_punctuation = re.sub('[^a-zA-Z ]', '', in_text)
words = without_punctuation.split(' ')

for i, w in enumerate(words):
    if w == looking_for:
        print(i)

但当然。标点符号将成为一个问题,就像在这里一样(带有'足球') - 所以我现在已经剥离了大部分内容。

答案 2 :(得分:0)

试试这个

def findall(list_in, search_str):
    output=[]
    last_index=0
    while True:
        try:
            find=list_in[last_index:].index(search_str)+last_index
            output.append(find)
            last_index= find+1;
        except:
            break
    return output

output是一个索引列表,其中search_str可以在list_in

中找到