假设我有一个 Pandas 数据帧,其中有 1 列,名为 contracting_department。它有 3 行数据:
- 消防部发展
- 园区开发
- 警务发展
我看到括号有些奇怪
场景 1:
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,而不是IN,IN。
场景 2:
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
由于("fire" or "police")
的值是"fire"
(如果or
运算符为 true,则返回左侧,否则返回右侧(。
if "fire" or "police" in i
翻译为:
if ("fire") or ("police" in i)
这只是:
if True
因为"fire"
是真实的。"police"
是否处于i
并不重要,因为"fire"
总是使条件为真。