获取散列-table 中满足特定算法 属性 的所有键
Get all keys in a hash-table that satisfy certain arithmetic property
假设我有一个 Hash-table,每个键都定义为一个包含 4 个整数(A、B、C、D)的元组。其中是整数表示某个属性的数量,其对应的值为满足(A,B,C,D)的齿轮元组
我想编写一个程序来执行以下操作:对于任何给定的属性元组 (x, y, z, w),我想找到所有满足 (|A - x| + |B - y | + |C - z| + |D - w|) / 4 <= i 其中 i 是用户定义的阈值; return 这些键的值如果存在并做一些进一步的计算。 (|A - x|表示A - x的绝对值)
根据我的经验,这种事情可以用答案集编程、Haskell、Prolog 和所有这些逻辑编程语言更好地完成,但我被迫使用 python因为这是一个 python 项目...
我可以对特定的 "i" 进行硬编码,但我真的不知道如何对任意整数执行此操作。请告诉我如何在纯 python 中做到这一点,非常感谢!!!!
只需编写一个函数,循环遍历 table 中的所有值并逐一检查它们。该函数将 table 和 i
作为参数。
您可以使用条件列表理解:
[key for key in my_hashtable
if sum(abs(k - val) for k, val in zip(key, (x, y, z, w))) / 4 <= i]
假设我有一个 Hash-table,每个键都定义为一个包含 4 个整数(A、B、C、D)的元组。其中是整数表示某个属性的数量,其对应的值为满足(A,B,C,D)的齿轮元组
我想编写一个程序来执行以下操作:对于任何给定的属性元组 (x, y, z, w),我想找到所有满足 (|A - x| + |B - y | + |C - z| + |D - w|) / 4 <= i 其中 i 是用户定义的阈值; return 这些键的值如果存在并做一些进一步的计算。 (|A - x|表示A - x的绝对值)
根据我的经验,这种事情可以用答案集编程、Haskell、Prolog 和所有这些逻辑编程语言更好地完成,但我被迫使用 python因为这是一个 python 项目...
我可以对特定的 "i" 进行硬编码,但我真的不知道如何对任意整数执行此操作。请告诉我如何在纯 python 中做到这一点,非常感谢!!!!
只需编写一个函数,循环遍历 table 中的所有值并逐一检查它们。该函数将 table 和 i
作为参数。
您可以使用条件列表理解:
[key for key in my_hashtable
if sum(abs(k - val) for k, val in zip(key, (x, y, z, w))) / 4 <= i]