Mor*_*itz 22 python floating-point dictionary key
我正在开发一个用于微量滴定板分析的课程.样本在单独的文件中描述,条目用于有序字典.其中一个关键是pH,通常以浮子形式给出.例如6.8
我可以将其导入为十进制,Decimal('6.8')以避免浮动为dict键.另一种解决方案是用例如像6p8的p替换点或在我的样本描述中写入6p8,从而在开始时消除问题.但这会引起麻烦,因为我无法在我的数字中绘制6p8的pH值.
你会如何解决这个问题?
Joh*_*ooy 24
将浮点数用作dict键是没有问题的.
只是将round(n, 1)它们标准化为您的键空间.例如.
>>> hash(round(6.84, 1))
3543446220
>>> hash(round(6.75, 1))
3543446220
也许您想在使用 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)]   
检索您的价值观