在 python 3 中如何使用布尔逻辑使这个 if 语句更简洁?
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
吗?另一种解决方案是使用 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)
这里用regular-expression最好,因为速度快,一行就解决了。
但是,如果您想对每个选项使用 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)
我想从网站的 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)
这里用regular-expression最好,因为速度快,一行就解决了。
但是,如果您想对每个选项使用 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)