【问题标题】:Convert some values of a list into float将列表的某些值转换为浮点数
【发布时间】:2018-06-10 16:38:11
【问题描述】:

我遇到了一个问题,我在列表中的值是实数类型,我必须将它们转换为浮点数。

列表如下:

[{ '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'等的值是真实的,需要转换,我将如何在Python中做到这一点

float(x) for x in data

对我不起作用。

【问题讨论】:

  • python中没有real类型。
  • 'O' 值已经是浮点数。无事可做。
  • 您在此处显示的示例数据似乎不能代表您的实际数据,因为有问题的值已经是浮点数。也许您有 ints 或 strings 想要转换为 float
  • @Daniel 但为什么 TA-Lib 说类型不可能是真实的?

标签: python list type-conversion


【解决方案1】:

您有一个dict 对象列表,其值(至少其中一些)可以转换为float。一种天真的方法是:

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
]

【讨论】:

  • 我仍然不确定 OP 想要什么,但如果您打算将此作为答案,您不妨将其设为 except (ValueError, TypeError) 以使其更加健壮。跨度>
  • 嗯,好的,谢谢。还要写一点,但现在可以使用了,谢谢。
猜你喜欢
  • 2017-01-22
  • 2016-01-29
  • 2016-04-29
  • 2021-05-13
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
相关资源
最近更新 更多