为了账号安全,请及时绑定邮箱和手机立即绑定

Python:将字符串列表转换为空/无的浮点数

Python:将字符串列表转换为空/无的浮点数

蓝山帝景 2022-07-19 17:00:12
我有a = ['1','2','','17']我想对其应用最小/最大操作。我不能使用熊猫/numpy。但是,我将其转换为浮点数,但无法使用 float() 函数将 '' 转换为浮点数。如果我有一个 None 而不是一个 '',也会发生同样的事情。我从来没有在matlab中遇到过这个问题,所以我迷失了python。我可以将它转换为浮点数[float(i) for i in var if i],但我需要保持相同的大小以便稍后处理索引。此方法将删除空字符串,这不是我想要的,我需要一个可以在其上应用均值/最大值/最小值等的值(显然不是无)
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您可以定义一个函数,该函数尝试将值转换为浮点数,None如果不能,则返回,然后使用列表推导式创建列表的转换和过滤版本,您可以使用min/ max/... 无论如何,同时保持原始不变。


def try_float(v):

   try:

       return float(v)

   except Exception:

       return None


# Original:

a = ['1', '2', '', '17', None, 'purple', -7, 0]


# Containing floats and Nones:

floaty_a = [try_float(item) for item in a]


# Filter out the Nones:

filtered_a = [item for item in floaty_a if item is not None]


# Compute min/max:

print(min(filtered_a))

print(max(filtered_a))


查看完整回答
反对 回复 2022-07-19
  • 1 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信