0

这是我的代码的一部分:

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)

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

谢谢!

4

1 回答 1

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
于 2013-12-09T09:14:28.953 回答