浮点值作为字典键

2024-05-16 20:11:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一门分析微量滴定板的课程。样本在单独的文件中描述,条目用于有序字典。其中一个关键是pH值,通常以float形式给出。e、 g 6.8国

我可以用Decimal('6.8')将其导入为十进制,以避免使用浮点作为dict键。另一个解决方案是用类似于6p8的p替换点,或者在我的示例描述中写入6p8,从而在开始时消除问题。但这会在以后引起麻烦,因为我无法在我的数字中描绘出6 p8的pH值。

你将如何解决这个问题?


Tags: 文件字典条目解决方案floatphdict形式
3条回答

也许您想在使用is作为键之前截断浮点值?

可能是这样的:

a = 0.122334
round(a, 4)       #<-- use this as your key?

你的钥匙现在是:

0.1223           # still a float, but you have control over its quality

使用方法如下:

dictionary[round(a, 4)]   

找回你的价值观

使用浮点数作为dict键没有问题。

只要round(n, 1)它们就可以正常化到您的键空间。例如

>>> hash(round(6.84, 1))
3543446220
>>> hash(round(6.75, 1))
3543446220

另一种选择是使用元组:

dictionary = {(6.8,): 0.3985}
dictionary[(6.8,)]

然后,稍后检索值以进行绘图很容易

points = [(pH, value) for (pH,), value in dictionary.items()]
    ...

相关问题 更多 >