在Python3中,如何使用布尔逻辑使这个IFS语句更简洁?

2024-10-16 22:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从网站的json数据中提取由“后端”、“后端”或“后端”组成的职务。我使用以下代码成功地做到了这一点:

if "back-end" in jobtitle.lower():
            print(jobtitle)
if "back end" in jobtitle.lower():
            print(jobtitle)
if "backend" in jobtitle.lower():
            print(jobtitle)
else:
            continue

示例输出如下所示:

Software Back-End Developer
(Senior) Back-end PHP Developer
Backend Developer (m/w/d)
Back End Developer
Front-End / Back-End Developer (m/w/d)

我如何使它更简洁


Tags: 数据代码injsondeveloperif网站back
2条回答

你是否可以使用if ... in?另一个解决办法是使用regular expressions

back[\-\s]?endTry it here

说明:

  • back:匹配“back”
  • [\-\s]:这些字符中的任何一个:-<whitespace>
  • ?:零或前一个
  • end:匹配“结束”

在Python中运行它,如下所示:

rexp = re.compile(r"back[\s\-]?end", re.IGNORECASE)
if re.search(rexp, jobtitle):
    print(jobtitle)

在这里使用正则表达式将是最佳的,因为它很快,并且可以在一行中解决它

但是,如果要对每个选项使用if ... in语句,则可以在同一语句中使用^{}对它们进行比较:

x = """Software Back-End Developer
(Senior) Back-end PHP Developer
Backend Developer (m/w/d)
Back End Developer
Front-End / Back-End Developer (m/w/d)""".splitlines()

for row in x:
  if any(i in row.lower() for i in ["backend", "back end", "back-end"]):
    print(row)

相关问题 更多 >