我想内存一个带有可变参数的函数(Pandas Series 对象)。有什么办法可以做到这一点?
这是一个简单的斐波那契示例,参数是 Pandas 系列,其中第一个元素代表序列的索引。
例子:
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n.iloc[0] == 1 or n.iloc[0] == 2:
return 1
min1 = n.copy()
min1.iloc[0] -=1
min2 = n.copy()
min2.iloc[0] -= 2
return fib(min1) + fib(min2)
调用函数:
fib(pd.Series([15,0]))
结果:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
预期用途更复杂,所以我发布了这个无用但简单的示例。
最佳答案
几个选项:
- 将可变对象转换为不可变对象(immutable对象),例如字符串或元组。
- 创建可变对象的散列并将其用作备忘录字典键。哈希冲突的风险。
- 创建一个实现 __hash__() 函数的不可变子类。
关于python - Pandas Series 参数函数内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49341568/