列表中的逻辑功能-奇怪的python行为 如何复制它

问题描述

我已经使用Python一段时间了。我最近发现,当您在列表上使用内置函数orand时,会得到奇怪的结果。

我所知道的

根据 official documentation, 这些功能应该像它们的逻辑对一样工作

Boolean Operations — and,or,not from (Official Documentation)

,并且这些运算符认情况下已配置为与list一起使用。

问题(疑问)

当我尝试将这些功能list一起使用时,发生了一件奇怪的事情。这些功能似乎互换了。

如何复制它

另外,这些功能似乎可以正常工作

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 
>>> True or True
True
>>> False or True
True
>>> False or False
False

我们将列表a,b定义为

>>> a = [ True,False,False]
>>> b = [ True,True]
>>> 
>>> a and b
[True,True]
>>> a or b
[True,False]

实用

在尝试为类实用程序创建逻辑接口时遇到了此问题。 最后,在某些情况下,我决定创建一个class Proposition并重载其运算符以接收预期的结果。但是我对这种行为感到疑惑。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)