我有以下设置:
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
“苹果”一词确实存在,只是另一个词的一部分。在这种情况下,我也想将其退回。
答案 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)