您可以使用any
或all
>>> all(character.isalpha() for item in alist for character in item)
False
>>> any(character.isalpha() for item in alist for character in item)
True
>>> ## if you want the same output as using any
>>> not all(character.isalpha() for item in alist for character in item)
True
顺便说一句,all
更快(至少在这种相对较小的情况下)
>>> import timeit
>>> timeit.timeit('not all(character.isalpha() for item in ["1", "+", "b1"] for character in item)', number=10000)
0.021654181380604598
>>> timeit.timeit('any(character.isalpha() for item in ["1", "+", "b1"] for character in item)', number=10000)
0.034381219301721444
如果您更改订单,这将不成立
>>> timeit.timeit('not all(character.isalpha() for item in ["b1", "+", "1"] for character in item)', number=10000)
0.0663501940999538
>>> timeit.timeit('any(character.isalpha() for item in ["b1", "+", "1"] for character in item)', number=10000)
0.037434049209622344
所以选择其中一个很大程度上是个人喜好