マイクロタイタープレートの分析クラスを開発しています。サンプルは別のファイルに記述され、エントリは順序付けされた辞書に使用されます。キーの1つはpHで、通常はフロートとして与えられます。例:6.8
Floatをdictキーとして回避するために、Decimal('6.8')
を使用して10進数としてインポートできます。別の解決策は、ドットをたとえば6p8のようなpに置き換えるか、サンプルの説明に6p8と書くことで、最初から問題を排除することです。しかし、私の図では6p8のpHをプロットできないので、後で問題が発生します。
この問題をどのように解決しますか?
フロートをdictキーとして使用しても問題はありません。
それらをround(n, 1)
にして、キースペースに正規化します。例えば。
>>> hash(round(6.84, 1))
3543446220
>>> hash(round(6.75, 1))
3543446220
おそらく、キーを使用する前にフロートを切り捨てたいですか?
多分このように:
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)]
値を取得する
別のオプションはタプルを使用することです:
dictionary = {(6.8,): 0.3985}
dictionary[(6.8,)]
次に、後でプロットするために値を取得することは、次のようなもので簡単に行えます
points = [(pH, value) for (pH,), value in dictionary.items()]
...