python - 给定条件和值范围的动态 if 语句
问题描述
我想在 python 中有一个动态的 if-else。这是一个简单的例子:
def static_if(x):
if x < 5:
return 10
elif x< 10:
return 20
elif x<20:
return 18
else:
return -1
返回值和范围是不断变化的。甚至我使用的 if-else 的数量也可能会改变。我想要一个动态捕获这个输出的函数。例如,给定的输出数组[10,20,18,-1]
和[5,10,20]
上述函数的条件被创建。输出的长度和条件可能会改变,但输出的长度总是比条件少 1。
解决方案
您可以创建一个接收条件和输出数组的函数,然后使用它们创建一个新函数来执行您的static_if
操作:
def dynamic_if(output, cond):
def func(x):
for i, val in enumerate(cond):
if x < val:
return output[i]
return output[-1]
return func
static_if = dynamic_if([10,20,18,-1], [5,10,20])
static_if(4) # will output 10
static_if(21) # will output -1
推荐阅读
- docker - 如何在 k8s 中等待其他容器完成执行?
- python-3.x - 用换行符打印长字符串的 Python 指令代码
- python - Python编写函数将大写引入布尔值
- javascript - 使用 tensorflow-js 在网络摄像头上进行对象检测
- javascript - 什么允许在 index[some string] 和基础行为处分配数组
- python - 如何根据熊猫中的列条件选择多行作为一个组
- xamarin.forms - 可以通过 FFImageLoading CachedImage 从平台资产文件夹加载 SKBitmap?
- r - 使用 googlelanguageR 将语音转文本生成 NULL 成绩单
- node.js - 如何使用 Express 将获取请求重定向到静态图像资产
- java - 降低 if-else 语句的代码复杂性