如何使用Pandas, Numpy加速Python中的嵌套for循环逻辑?



我想看看表TestProject的字段是否包含从客户端传递的参数,嵌套的for循环是丑陋的,是否有任何有效和简单的方法来实现它?非常感谢你的建议。

def test(parameter_a: list, parameter_b: list) -> bool:
age = TestPeople.age
project_code = TestProject.project_code
if age is not None and age <= 16:
for code in project_code:
for p in parameter_a:
if code[:len(p)] == p:
return False
return True

可以使用itertools.productall吗?

from itertools import product
def test(parameter_a: list, parameter_b: list) -> bool:
age = TestPeople.age
project_code = TestProject.project_code
return (
age is None 
or age > 16
or all(code.startswith(p) for code, p in product(project_code, parameter_a))
)

:

这里python尝试使用short-circuit evaluation,所以它首先检查age is None,如果是return True,否则检查age > 16,如果是return True,否则检查allcode, p对是否符合code.startswith(p)的条件,如果所有对都通过了条件,则检查return True,否则如果有一对失败,则立即检查return False,而不检查其余的。

最新更新