python-3.x - @lru_cache 在具有交换参数的函数上
问题描述
我正在计算 2 个字符串之间的汉明距离,其中Hamming(A,B) == Hamming(B,A)
函数签名是
@lru_cache
def Hamming(A:str,B:str)->int:
...
如何修改@lru_cache 或在索引缓存时忽略参数顺序的函数?
解决方案
您可以插入一个额外的函数调用,可预测地重新排列参数:
def Hamming(A: str, B: str) -> int:
if B < A:
A, B = B, A
return _Hamming(A, B)
@lru_cache
def _Hamming(A, B):
...
推荐阅读
- php - Laravel 更新/编辑遇到“404 NOT FOUND”
- linux - 如何配置 PostgreSQL 以接受特定的 IPV6 传入连接
- python - 键错误:'MLCLSTM'
- performance - 如何确定哪个处理器的性能最高
- excel - 查找一个字符串并将相应的行复制到从不同列开始的同一张工作表中
- reactjs - 如何将 MERN 堆栈应用程序迁移到 Lambda
- arduino - 我正在创建这个温度监控系统
- c++ - 使用带有枚举和无符号字符的位运算符 - 结果为 0
- blockchain - 运行区块链节点时是否会耗尽存储空间?
- python - 系数矩阵和循环挑战