括号如何影响 Python 中用于检查字符串的'in'函数?



假设我有一个 Pandas 数据帧,其中有 1 列,名为 contracting_department。它有 3 行数据:

  1. 消防部发展
  2. 园区开发
  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")

输出:

  1. 不在
  2. 不在

显然这是错误的,应该是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"总是使条件为真。

相关内容

最新更新