用Python实现分段函数
时间: 2024-11-03 16:21:29 浏览: 30
在Python中,我们可以使用内置的`functools.lru_cache`装饰器以及自定义函数来创建分段函数。分段函数是指一个函数在其定义域的不同部分有不同的行为。这里是一个简单的例子:
```python
from functools import lru_cache
# 定义一个基础的分段函数
def linear_segment(x):
if x < 0:
return -x
elif x < 5:
return x // 2
else:
return x ** 2
# 使用lru_cache优化性能(缓存最近的结果)
@lru_cache(maxsize=None) # 如果不需要限制缓存大小,可以设置为None
def segmented_function(x):
segments = {
(-float('inf'), 0): linear_segment,
(0, 5): lambda x: x // 2,
(5, float('inf')): lambda x: x**2
}
return segments[(x >= segments.keys())[::-1][0]](x)
# 测试分段函数
print(segmented_function(-3)) # 输出:3
print(segmented_function(3)) # 输出:1
print(segmented_function(7)) # 输出:49
阅读全文