簡體   English   中英

我如何使用布爾邏輯使這個 if 語句在 python 3 中更加簡潔?

[英]How do I use boolean logic to make this if-statement more concise in python 3?

我想從網站的 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嗎? 另一種解決方案是使用正則表達式

back[\\-\\s]?end在這里試試

解釋:

  • 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM