列表理解和 'all' 关键字
List comprehension and 'all' key word
nums = ['90']
print(all([((ele == ele[::-1] and int(ele) > 0) for ele in nums)]))
我对上面代码的期望是打印 False
,但它正在打印 True
。能否请您解释一下打印的原因?
((ele == ele[::-1] and int(ele) > 0) for ele in nums)
是您的生成器,但随后您将其包装在列表 [((ele == ele[::-1] and int(ele) > 0) for ele in nums)]
中。因此,您传递给 all
的是:
[<generator object <genexpr> at 0x059BE070>]
在这种情况下,所有人都会 return true
。
你想要的是:
print(all(((ele == ele[::-1] and int(ele) > 0) for ele in nums)))
或
print(all([(ele == ele[::-1] and int(ele) > 0) for ele in nums]))
nums = ['90']
print(all([((ele == ele[::-1] and int(ele) > 0) for ele in nums)]))
我对上面代码的期望是打印 False
,但它正在打印 True
。能否请您解释一下打印的原因?
((ele == ele[::-1] and int(ele) > 0) for ele in nums)
是您的生成器,但随后您将其包装在列表 [((ele == ele[::-1] and int(ele) > 0) for ele in nums)]
中。因此,您传递给 all
的是:
[<generator object <genexpr> at 0x059BE070>]
在这种情况下,所有人都会 return true
。
你想要的是:
print(all(((ele == ele[::-1] and int(ele) > 0) for ele in nums)))
或
print(all([(ele == ele[::-1] and int(ele) > 0) for ele in nums]))