假设我有一个Pandas Dataframe,其中有一列叫做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
操作符如果是truthhy则返回左边,否则返回右边)。)
if "fire" or "police" in i
翻译成。
if ("fire") or ("police" in i)
这就是公正。
if True
自 "fire"
是真理性的。 这并不重要,如果 "police"
是在 i
自从 "fire"
将永远使条件为真。