gpt4 book ai didi

python - 一种更有效的使用 if 条件的 pythonic 方式

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:22 24 4
gpt4 key购买 nike

我有这段检查条件的代码:

def is_important(data_row):
if data_row.get('important', None):
return True
add_data = get_additional_data(data_row)
for word in NEGATIVE_WORDS:
if word in add_data.lower():
return False
for word in POSITIVE_WORDS:
if word in add_data.lower():
return True
return False

这很难理解(在我看来),所以我想知道是否有人可以建议一些更 pythonic 和更短的行?例如,我可以合并两个 for 循环吗?如果我合并两个 for 循环,它会消耗更多时间吗?

最佳答案

由于 any 很像您的显式循环,因此更紧凑并且短路

def is_important(data_row):
if data_row.get('important', None):
return True
add_data = get_additional_data(data_row)
if any(word in add_data.lower() for word in NEGATIVE_WORDS): # negative check takes precedence.
return False
if any(word in add_data.lower() for word in POSITIVE_WORDS):
return True
return False

一些事情:

  • 为什么在搜索 NEGATIVE_WORDS 而不是 POSITIVE_WORDS 时调用 .lower()
  • 如果 add_data 同时包含 NEGATIVE_WORDSPOSITIVE_WORDS,最后两个 if 的顺序将影响结果。这不是好的做法。

关于python - 一种更有效的使用 if 条件的 pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45956218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com