微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Python 3中使用布尔逻辑使此if语句更简洁?

如何解决如何在Python 3中使用布尔逻辑使此if语句更简洁?

我想从网站的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)

如何使其更简洁?

解决方法

使用if ... in吗?另一种解决方案是使用regular expressions

back[\-\s]?end Try it here

说明:

  • back:匹配“后退”
  • [\-\s]:以下任意字符:-<whitespace>
  • ?:零或前一个
  • end:匹配“结束”

像这样在Python中运行它:

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

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

但是,如果要对每个选项使用if ... in语句,则可以使用any()在同一条语句中进行比较:

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。