0 python if-statement simplification
这是我的代码的一部分:
for line in f:
if animals[0].upper() in line:
break
elif animals[1].upper() in line:
break
elif animals[2].upper() in line:
break
elif animals[3].upper() in line:
break
elif animals[4].upper() in line:
break
elif animals[5].upper() in line:
break
elif animals[6].upper() in line:
break
elif animals[7].upper() in line:
break
elif animals[8].upper() in line:
break
elif animals[9].upper() in line:
break
elif animals[10].upper() in line:
break
print(line)
Run Code Online (Sandbox Code Playgroud)
我只想弄清楚它是否可以以某种方式简化,但我真的无法想出任何东西.有什么想法吗?
谢谢!
以下是与上述内容完全相同的代码:
if any(animals[x].upper() in line for x in range(11)):
break
Run Code Online (Sandbox Code Playgroud)
假设它animals支持迭代器协议(这可能是真的),更好的解决方案是做这样的事情:
if any(animal.upper() in line for animal in animals): # slice animals as necessary
break
Run Code Online (Sandbox Code Playgroud)