我有一些数据包含 5 个元素的比率
'a'
、'b'
、'c'
、'd'
、'e'
,看起来像这样:
data = [
{'a': 0.197, 'b': 0.201, 'c': 0.199, 'd': 0.202, 'e': 0.201},
{'a': 0.624, 'b': 0.628, 'c': 0.623, 'd': 0.625, 'e': 0.750},
{'a': 0.192, 'b': 0.203, 'c': 0.200, 'd': 0.202, 'e': 0.203},
{'a': 0.630, 'b': 0.620, 'c': 0.625, 'd': 0.623, 'e': 0.752},
]
我想将每个比率数据(表示为字典)散列成一个字符串,该字符串可以用作具有容差的比率的唯一标识符。例如,每个元素的比率容差为 0.1,期望第一和第三个字典应具有相同的标识符,第二和第四个字典应具有相同的标识符。如果只是想比较两个比率数据是否在容差范围内,这很容易做到,但我不确定如何创建唯一标识符。
你可以用一些分组函数来表达这个条件(如果我理解正确的话):
def grouping_key(dct, tolerance=0.1):
v = dct.values()
return hash(max(v) - min(v) <= 0.1)
[*map(grouping_key, data)]
# [1, 0, 1, 0]