nums = ['90']print(all([((ele == ele[::-1] and int(ele) > 0) for ele in nums)]))我期望上面的代碼能夠打印False,但它正在打印True。您能解釋一下打印的原因嗎?
1 回答

慕少森
TA貢獻2019條經驗 獲得超9個贊
((ele == ele[::-1] and int(ele) > 0) for ele in nums)
是你的生成器,但是你將其包裝在一個 list 中[((ele == ele[::-1] and int(ele) > 0) for ele in nums)]
。因此,您要傳遞的all
是:
[<generator object <genexpr> at 0x059BE070>]
在這種情況下一切都會返回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]))
添加回答
舉報
0/150
提交
取消