gpt4 book ai didi

python - 是否有一种优雅的替代方法可以在不使用大量 if 语句的情况下过滤这些结果?

转载 作者:行者123 更新时间:2023-11-28 21:28:08 25 4
gpt4 key购买 nike

我正在 python 中执行一些模拟,生成 1000 个结果。每个结果都具有风险、成本等多个属性

我现在想确定满足特定条件的结果,例如:

Factor 1, cost should be between 10 and 20
Factor 2, risk should be between 0 and 5
Factor 3...
Factor 4...
....

目前我正在使用一系列嵌套的 if 语句来执行此操作。随着更多因素的添加,嵌套变得困惑。是否有一种优雅的替代方法可以根据特定条件进行过滤?

最佳答案

有很多解决方案取决于您的数据和偏好的代码风格。例如:

>>> conditions = (lambda x: 10 < x.cost < 20, lambda x: 0 < x.risk < 10)
>>> filter(lambda x: all(cond(x) for cond in conditions), result)

或者只是:

>>> conditions = lambda x: 10 < x.cost < 20 and 0 < x.risk < 10
>>> filter(conditions, result)

或者:

>>> [r for r in result if 10 < r.cost < 20 and 0 < r.risk < 10]

关于python - 是否有一种优雅的替代方法可以在不使用大量 if 语句的情况下过滤这些结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002031/

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