社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

emmanuelsa

emmanuelsa 最近创建的主题
emmanuelsa 最近回复了
7 年前
回复了 emmanuelsa 创建的主题 » 与python列表一起使用的and运算符[重复]

对。这是正确的行为和比较。

至少在python中, A and B 收益率 B 如果 A 本质上 True 包括如果 不为空,不为 None 不是空的容器(例如 list , dict 等)。 返回IFF 本质上 False 没有 或空或空。

另一方面, A or B 收益率 如果 本质上 包括如果 不为空,不为 没有 不是空的容器(例如 列表 , 双关语 ,否则返回 .

很容易不注意(或忽略)这种行为,因为在python中, non-null 非空对象的计算结果为true,将被视为布尔值。

例如,以下所有内容都将打印“true”

if [102]: 
    print "True"
else: 
    print "False"

if "anything that is not empty or None": 
    print "True"
else: 
    print "False"

if {1, 2, 3}: 
    print "True"
else: 
    print "False"

另一方面,以下所有内容都将打印“false”

if []: 
    print "True"
else: 
    print "False"

if "": 
    print "True"
else: 
    print "False"

if set ([]): 
    print "True"
else: 
    print "False"