Python:在列表中搜索值

时间:2018-09-06 02:23:39

标签: python python-3.x list

我有以下设置:

stuff = ['apple', 'I like apples today', 'orange', 'oranges and apples guys']

我想做什么:我想搜索列表中的每个值,以查看该列表索引值中的任何地方是否都包含“ orange”一词。

换句话说,我的预期输出是这样:

orange
oranges and apples guys

我现在得到的是什么。

这是我目前正在做的事情:

for x in range(0, len(stuff), 1):

     if 'orange' in stuff[x] == True:
          print('testing to see if this works')

对此我没有成功,有什么建议吗?

编辑#1:

我尝试搜索contains模块使用的re语法,但未返回任何有用的信息。

编辑#2:

对于这种情况呢?

stuff = ['crabapple']

'apple' in stuff

False

“苹果”一词确实存在,只是另一个词的一部分。在这种情况下,我也想将其退回。

4 个答案:

答案 0 :(得分:3)

使用列表理解

print ([x for x in stuff if "orange" in x])

答案 1 :(得分:0)

您使用的方式不正确,应删除==True,否则python在二进制列表中会将其视为“橙色”。

for x in stuff:
    if 'orange' in x:
        print('testing to see if this works\n')
        print(x)

testing to see if this works

orange
testing to see if this works

oranges and apples guys

答案 2 :(得分:0)

使用此:

for x in range(0, len(stuff), 1):
    if ('orange' in stuff[x])== True:
        print('testing to see if this works')

对于您的代码,python将判断'stuff [x] == True'(它将为False),然后判断'orange in False',因此它将始终为False。

答案 3 :(得分:0)

字符串的find方法返回子字符串的索引,如果找不到则返回-1:

for s in stuff:
    if s.find('orange') != -1:
        print(s)