python - 括号如何影响 Python 中检查字符串的“in”函数?
问题描述
假设我有一个带有 1 列的 Pandas 数据框,称为contracting_department。它有 3 行数据:
- 消防部门。发展
- 园区开发
- 警察发展
我在括号中看到了一些奇怪的东西
场景一:
df["contracting_department"] = df["contracting_department"].str.lower()
for i in df.contracting_department:
if ("fire" or "police") in i :
print("IN")
else:
print("NOT IN")
输出:
- 在
- 不在
- 不在
显然这是错误的,应该是 IN,NOT IN,IN。
场景二:
df["contracting_department"] = df["contracting_department"].str.lower()
for i in df.contracting_department:
if "fire" or "police" in i :
print("IN")
else:
print("NOT IN")
输出2:
- 在
- 在
- 在
知道这里发生了什么吗?
解决方案
if ("fire" or "police") in i
翻译为:
if "fire" in i
因为 is 的值("fire" or "police")
("fire"
如果or
它是真实的,则运算符返回左侧,否则返回右侧)。
if "fire" or "police" in i
翻译为:
if ("fire") or ("police" in i)
这只是:
if True
因为"fire"
是真实的。"police"
如果is in并不重要,i
因为"fire"
它将始终使条件为真。
推荐阅读
- kubernetes - Kubernetes:如何在另一个集群中重用 pvc 和 pv
- react-apollo - Apollo 客户端延迟请求
- jquery - 如何在淘汰赛中不断更新绑定到视图的值数据
- sql - SQL column name with comma
- c# - 从文件夹中获取所有文件及其信息
- ffmpeg - 使用 ffmpeg 或 ffplay 播放问题
- javascript - 我无法将值传递给函数
- android - Pusher Beams - 推送通知取消订阅在 android 中不起作用
- gulp - 什么是项目进行 gulp 集成的最佳时间或阶段?
- arrays - 对数组元素使用 Mockito 匹配器