具有公差的比率的唯一标识符

问题描述 投票:0回答:1

我有一些数据包含 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,期望第一和第三个字典应具有相同的标识符,第二和第四个字典应具有相同的标识符。如果只是想比较两个比率数据是否在容差范围内,这很容易做到,但我不确定如何创建唯一标识符。

python string algorithm hash identifier
1个回答
0
投票

你可以用一些分组函数来表达这个条件(如果我理解正确的话):

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]
© www.soinside.com 2019 - 2024. All rights reserved.