I am developing a class for the analysis of microtiter plates. The samples are described in a separate file and the entries are used for an ordered dictionary. One of the keys is pH, which is usually given as float. e.g 6.8
I could import it as decimal with Decimal('6.8')
in order to avoid a float as dict key. Another solution would be to replace the dot with e.g p like 6p8 or to write 6p8 in my sample description and therefore eliminating the problem at the beginning. But this would cause troubles later on since i cannot plot pH of 6p8 in my figures.
How would you solve this issue?
Second, a dictionary key must be of a type that is immutable. For example, you can use an integer, float, string, or Boolean as a dictionary key.
There's no problem using floats as dict keys.
We can use integer, string, tuples as dictionary keys but cannot use list as a key of it .
There's no problem using floats as dict keys.
Just round(n, 1)
them to normalise them to your keyspace. eg.
>>> hash(round(6.84, 1)) 3543446220 >>> hash(round(6.75, 1)) 3543446220
Perhaps you want to truncate your float prior to using is as key?
Maybe like this:
a = 0.122334 round(a, 4) #<-- use this as your key?
Your key is now:
0.1223 # still a float, but you have control over its quality
You can use it as follows:
dictionary[round(a, 4)]
to retrieve your values
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With