python - 在多个列表中
问题描述
我最近对此感到困惑
if 2 in ([1,2] or [3,4]) : print(True)
else: print(False)
#prints True
or
是一个布尔运算符,那么它如何应用于列表?- 为什么它的工作原理相同
if 2 in [1,2] or [3,4]
?
解决方案
- 利用
any()
print(any(2 in x for x in [[1, 2], [3, 4]]))
or
is 对任何类型进行操作,而不仅仅是布尔值。它返回最左边的操作数是真实的,或者False
如果没有一个操作数是真实的。所以([1, 2] or [3, 4])
等价于[1, 2]
因为任何非空列表都是真实的。
一般来说,运营商不会像用英语那样自动分发编程语言。x in (a or b)
不一样x in a or x in b
。编程语言递归地评估表达式,因此x in (a or b)
大致等价于:
temp = a or b
x in temp
推荐阅读
- java - 一个应用程序可以从其他应用程序窃取数据库连接吗?
- excel - Excel 我可以手动添加列以查询和保留行完整性-链接-当原始表行数更改时?
- kubernetes - 您与此站点的连接不安全(nginx 入口)
- javascript - 如何对按钮进行缩放效果?
- android - 非静态方法 filterdList(ArrayList
) 不能从静态上下文中引用 - java - 读取 Blob 文件而不将其保存为文件
- javascript - 使用 Fetch 返回的 Promise 不响应 .then()
- python - 根据 Python 中第二个列表中的值从第一个列表中复制项目
- php - 如何将默认子数组值应用于关联多维数组?
- node.js - 如何使用 gcloud compute nodejs 客户端分配 serviceAccount?