我试图理解any()
和all()
Python内置函数是如何工作的。
我试图比较这些元组,以便如果任何值不同,那么它将返回True
,如果它们都相同,则返回False
。在这种情况下,他们是如何返回[False, False, False]的?
d
是一个defaultdict(list)
。
print d['Drd2']
# [[1, 5, 0], [1, 6, 0]]
print list(zip(*d['Drd2']))
# [(1, 1), (5, 6), (0, 0)]
print [any(x) and not all(x) for x in zip(*d['Drd2'])]
# [False, False, False]
据我所知,这应该会输出
# [False, True, False]
因为(1,1)是相同的,(5,6)是不同的,(0,0)是相同的。
为什么它对所有元组都求值为False ?
参见检查条件是否适用于列表中的任何元素的python方法,以获得any
的实际用法。