Python if / elif简化

时间:2013-12-09 09:12:59

标签: 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)

我只想弄清楚它是否可以以某种方式简化,但我真的无法想出任何东西。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:8)

以上是与上述内容完全相同的代码:

if any(animals[x].upper() in line for x in range(11)):
    break

假设animals支持迭代器协议(可能是真的),更好的解决办法就是做这样的事情:

if any(animal.upper() in line for animal in animals):  # slice animals as necessary
    break