2017-12-30 52 views
-2

問題があります。リストの値は実数型で、浮動小数点数に変換する必要があります。次のようにリストの一部の値を浮動小数点に変換する

リストが見えます:

[{ 'O' : 15.2565, 'H' : 16, 'L' : 14, 'C' : 14.56, 'T' : '2017-12-30T13:30:00'}, 
{ 'O' : 14.56, 'H' : 17, 'L' : 13, 'C' : 16.654 'T' : '2017-12-30T13:35:00'}, 
etc] 

「O」などの値が本当であると変換する必要があり、どのように私は

float(x) for x in data 

doesnのようPythonでいることだろう私のために働く。

+7

のpythonにはタイプ 'real'はありません。 – Daniel

+4

'O'値はすでに浮動小数値です。何もする必要はありません。 –

+0

ここに表示されているサンプルデータは、問題の値がすでに浮動小数点になっているため、実際のデータを表すものではないようです。おそらく 'float'に変換したい' int'や 'str'があるでしょうか? –

答えて

0

値が(少なくともそれらの一部)floatに変換できるdictオブジェクトのリストがあります。単純なアプローチは次のようになります。

for dct in data: 
    for k in dct: 
    try: 
     dct[k] = float(dct[k]) 
    except (ValueError, TypeError): 
     pass 

あなたはキーが浮揚可能な値にマッピングされ、事前に知っていれば、あなたはいくつかの行を保存する疑わしい利益のために理解を使用することができます。 dicts再構築だけでなく、それらの周りのlistする必要があるとして、これは、ネストされた理解であることに注意してください:

data = [ 
    {k: float(v) if k in ('O', 'H', 'L', 'C') else v for k, v in dct.items()} 
    for dct in data 
] 
+2

私はまだOPが何を望んでいるのか分かりませんが、これを答えに入れるならば、ちょっと頑強にするために 'except(ValueError、TypeError)'にすることもできます。 –

+0

ああありがとう。もう少し書くことができますが、今は感謝しています。 – nerdlab

関連する問題