2013-06-01 59 views
1
list = [america , china, japan, mvnsangameshertet,] 

我想检查列表中的任何字符串是否包含名称sangamesh。例如:检查列表中的字符串内的字符串

我可以用这个:

for a in list: 
    if "sangamesh" in a: 
     print True 
    else: 
     print False 

但是这给了我造成像

False 
False 
False 
True 

我只想输出要么TrueFalse

我还是一个初学者我尝试了很多,但无法想出替代品!

+0

你真的不想不要命名一个变量'list';该变量现在掩盖了内置类型。 –

+0

@ yardsale8 - 请不要在一个问题中更改代码,因为它可能会掩盖将他们带到第一位的问题或阻止他人提供答案。如果您发现代码存在问题,请发表回复或留下评论。 – Leigh

+0

@Leigh同意..感觉! – Sangamesh

回答

7

使用any()

print any("sangamesh" in a for a in lst) 

这将只要有任何a为其测试True返回True;在此之后它不会再测试任何值。

对于未来的参考,你也可以用break结束循环:

for a in lst: 
    if "sangamesh" in a: 
     print True 
     break 
else: 
    print False 

注意,else现在是for替代的一部分;如果你没有跳出循环,最后执行else套件,但是如果你做了break,那么跳过else套件。

+0

@martijin pieters perfect !! – Sangamesh

3
>>> items = ["america" , "china", "japan", "mvnsangameshertet"] 
>>> any("sangamesh" in s for s in items) 
True 
+0

这也是perfect.thanks !!! – Sangamesh

+0

@leigh y你回滚..我认为字符串必须在引号..建议是正确的! :O – Sangamesh

相关问题