Python 在列表中特定单词前后搜索三个元素

Python 在列表中特定单词前后搜索三个元素,python,list,Python,List,我有字符串列表,我的主单词是“any”,我想在“any”之前或之后的任意三个单词中搜索,我尝试了以下方法: list1 = ['I','love','any','kind','of','7up','as','drink'] soda = ['7up','pepsi','sprite','fanta'] fruit= ['orange','apple','banana','pineapple'] j = 0 while list1[j]: if list1[j] == 'any' and

我有字符串列表,我的主单词是“any”,我想在“any”之前或之后的任意三个单词中搜索,我尝试了以下方法:

list1 = ['I','love','any','kind','of','7up','as','drink']
soda = ['7up','pepsi','sprite','fanta']
fruit= ['orange','apple','banana','pineapple']

j = 0
while list1[j]:
    if list1[j] == 'any' and list1[j - 1:j - 3] == 'love':
        if list1[j + 1:j + 3] in soda:
            print "loving soda"
        elif list1[j + 1:j + 3] in fruit:
            print "loving fruit"
        else:
            pass
    j += 1
    if j == len(list1):
        break
我尝试对列表进行切片并在切片列表中搜索,但对我来说不起作用,有时没有输出,有时索引超出范围。我认为有更好的办法。我在代码中不使用内置函数,但如果这样可以解决问题,那就好了。
我想检查列表1中“any”之前的三个单词以及列表1中“any”之后的任何三个单词是否出现在任何列表苏打水或水果中

若要测试切片中的任何元素是否满足某些条件,请将函数与

例如,而不是:

list1[j - 1:j - 3] == 'love'
使用:

或:


要测试切片中的任何元素是否满足某些条件,请将函数与

例如,而不是:

list1[j - 1:j - 3] == 'love'
使用:

或:


我有字符串列表,我的主词是“any”,我想在“any”之前或之后的任意三个词中搜索,我有字符串列表,我的主词是“any”,我想在“any”之前或之后的任意三个词中搜索,亲爱的@augurar这句话对我不起作用,“芬达是比百事可乐更好的选择”,我想与之合作“更好”和“比”作为搜索的主要词语,我想检查它们是否在句子中出现,然后检查“更好”和“比”之后和之前的其他词语,如果我想根据芬达对句子进行评估,我会说这是肯定的,而对百事可乐来说是否定的,你可以注意到,有时我不会写“比更好”有时你可以直接看到“比”更好的选择等等。希望你能得到这份工作idea@Ahmed我的答案只说明了为什么像
list1[j-1:j-3]==“love”
这样的表达式在代码中不起作用。如果你想更多地了解如何解析人工生成的文本,你应该学习。亲爱的@augurar,这句话“芬达是比百事可乐更好的选择”对我不起作用,我想用“更好”和“比”作为搜索的主要词语,我想检查他们是否在句子中放在一起,然后检查“更好”和“比”之后和之前的其他单词,如果我想根据芬达对句子进行评估,我会说这是肯定的,而对百事可乐来说是否定的,你可以注意到有时你不会直接写“比”好,有时你可以看到“比”更好的选择等等。希望你能得到这份工作idea@Ahmed我的答案只说明了为什么像
list1[j-1:j-3]==“love”
这样的表达式在代码中不起作用。如果您想了解有关如何解析人工生成的文本的更多信息,您应该学习。
any(e == 'love' for e in list1[j-1:j-3])