gpt4 book ai didi

python - 删除空元素但保留零作为值

转载 作者:行者123 更新时间:2023-11-28 19:36:07 31 4
gpt4 key购买 nike

我有一个列表如下:

lst = [-1.33, '', -1.33, -1.33 -2.62, 0, -2.66, 1.41, 0, 0, 1.40, '',  1.37, 0]

列表中有两个空元素 '',其中有几个零和 float 。

如何删除空元素但保留零?如下……

lst2 = [-1.33, -1.33, -1.33 -2.62, 0, -2.66, 1.41, 0, 0, 1.40, 1.37, 0]   

我尝试了以下方法:

lst2 = filter(None, lst)

lst2 = [x for x in lst if x if isinstance(x,str) == False]

但是,它也会删除零。

我知道 float 返回小数点后 12 位,为了举例请忽略。

有什么建议吗?谢谢。

最佳答案

为什么不简单地删除所有 ''

>>> lst2 = [x for x in lst if x != '']
>>> lst2
[-1.33, -1.33, -3.95, 0, -2.66, 1.41, 0, 0, 1.4, 1.37, 0]
>>>

或者你可以只保留 float 和整数:

>>> [x for x in lst if isinstance(x, (float, int))]
[-1.33, -1.33, -3.95, 0, -2.66, 1.41, 0, 0, 1.4, 1.37, 0]

# or a bit fancier
>>> import numbers
>>> [x for x in lst if isinstance(x, numbers.Number)]
[-1.33, -1.33, -3.95, 0, -2.66, 1.41, 0, 0, 1.4, 1.37, 0]

关于python - 删除空元素但保留零作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5442921/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com