括号对Python中检查字符串的 "in "函数有何影响?[重复]

问题描述 投票:0回答:1

假设我有一个Pandas Dataframe,其中有一列叫做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. IN
  2. 不在
  3. 不在

显然这是错误的,应该是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:

  1. IN
  2. IN
  3. IN

知道这里发生了什么吗?

python string pandas dataframe parentheses
1个回答
1
投票
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" 将永远使条件为真。

© www.soinside.com 2019 - 2024. All rights reserved.