Python的内置功能any(iterable)
可以帮助快速检查是否有bool(element)
是True
一个迭代的类型.
>>> l = [None, False, 0]
>>> any(l)
False
>>> l = [None, 1, 0]
>>> any(l)
True
Run Code Online (Sandbox Code Playgroud)
但是Python中有一种优雅的方式或功能可以达到相反的效果any(iterable)
吗?也就是说,如果有的bool(element) is False
话返回True
,如下例所示:
>>> l = [True, False, True]
>>> any_false(l)
>>> True
Run Code Online (Sandbox Code Playgroud) 我在列表中嵌套了元组
l = [(1, 'a', 'b'), (2, 'b', 'c'), (3, 'e', 'a')]
Run Code Online (Sandbox Code Playgroud)
我想知道列表中有多少'a'和'b'.所以我目前使用以下代码来获得结果.
amount_a_and_b = len([None for _, elem2, elem3 in l if elem2 == 'a' or elem3 == 'b'])
Run Code Online (Sandbox Code Playgroud)
但我得到了amount_a_and_b = 1
,那么如何得到正确的答案呢?
此外,是否有更优雅的方式(更少的代码或更高的性能或使用内置)来做到这一点?