我希望从列表中匹配正确的字词。这是我的代码:
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语句中的术语不匹配时,专门出现。有谁知道我能做到这一点?
答案 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"
如果您发现自己使用if
,elif
,elif
,elif
,......通常是因为您拥有designed your code badly。< / p>
请注意,我在此处使用
set
进行优化。如果您不知道原因,我建议您查看here。
答案 4 :(得分:0)
尽量不要使用&#39;如果我是你,我会尝试使用&#39; ==&#39;。
但是判断它已经在列表中,所以你不会需要&#39; for&#39;部分我想,只是&#39;如果xxx在东西&#39;
希望这有帮助!