使用If / Else语句从List中拉出 - Python

时间:2016-08-11 13:45:22

标签: python list

我希望从列表中匹配正确的字词。这是我的代码:

stuff = ["cat", "dog", "house", "cat", "mouse"]

for item in stuff:
    if "house" in item:
        print "house good"
    if "cat" in item:
        print "cat good"
    if "dog" in item:
        print "dog good"
    else:
        print "nothing else"

结果目前是:

cat good
nothing else
dog good
house good
nothing else
cat good
nothing else
nothing else

但我希望结果如下:

cat good
dog good
house good 
cat good 
nothing else

目前,该剧本不断拉动"没有别的"因为我的其他声明。但我不知道如何只制作"没有别的"当我的列表中的术语与我的if语句中的术语不匹配时,专门出现。有谁知道我能做到这一点?

5 个答案:

答案 0 :(得分:3)

您应该使用appRouterProviders, ,如下所示:

elif

否则for item in stuff: if "house" in item: print "house good" elif "cat" in item: print "cat good" elif "dog" in item: print "dog good" else: print "nothing else" 仅适用于最后一个else

答案 1 :(得分:2)

您应该使用elif将所有条件作为同一语句的一部分。目前,else仅适用于最后一个条件。

if "house" in item:
    print "house good"
elif "cat" in item:
    print "cat good"
elif "dog" in item:
    print "dog good"
else:
    print "nothing else"

答案 2 :(得分:0)

你必须使用elif条件,如:

stuff = ["cat", "dog", "house", "cat", "mouse"]

for item in stuff:
    if "house" in item:
        print ("house good")
    elif "cat" in item:
        print ("cat good")
    elif "dog" in item:
        print ("dog good")
    else:
        print ("nothing else")

答案 3 :(得分:0)

其他答案表明您应该使用elif语句来修复代码。这是完全合理的。但是,我只想指出,通过对代码的轻微重构,您可以使其更简单,更易读,更具扩展性:

stuff = ["cat", "dog", "house", "cat", "mouse"]
good_stuff = set(["house", "cat", "dog"])

for item in stuff:
    if item in good_stuff:
        print item + " good"
    else:
        print "nothing else"

如果您发现自己使用ifelifelifelif,......通常是因为您拥有designed your code badly。< / p>

  

请注意,我在此处使用set进行优化。如果您不知道原因,我建议您查看here

答案 4 :(得分:0)

尽量不要使用&#39;如果我是你,我会尝试使用&#39; ==&#39;。

但是判断它已经在列表中,所以你不会需要&#39; for&#39;部分我想,只是&#39;如果xxx在东西&#39;

希望这有帮助!