python - 当它是 '' 时删除元组列表的元素

标签 python python-2.7 list-comprehension

我有大量的元组列表,如下所示:

data =[
    ('-0.167969896634', '0.475981802514', ''), 
    ('-0.186100643368', '0.47510168705', ''), 
    ('-0.205064369305', '0.476225633961', ''),
...]

我需要删除 ' ' 并将它们全部转换为 float ,但我不确定该怎么做。我试过这个:

[tuple(float(x) for x in t) for t in data]

但是它会告诉我 str 不能转换为 float 类型,我怀疑它可能是 '' 部分?

最佳答案

您可以使用 try/except block 进行转换,例如:

代码:

def convert(a_float):
    try:
        return float(a_float)
    except ValueError:
        return 0

测试代码:

data = [('-0.167969896634', '0.475981802514', ''),
        ('-0.186100643368', '0.47510168705', ''),
        ('-0.205064369305', '0.476225633961', '')
        ]


new_data = [tuple(convert(f) for f in t) for t in data]
print(new_data)

结果:

[(-0.167969896634, 0.475981802514, 0), 
 (-0.186100643368, 0.47510168705, 0), 
 (-0.205064369305, 0.476225633961, 0)]

关于python - 当它是 '' 时删除元组列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396521/

相关文章:

python - 在列表推导式中将 groupby() 与过滤器一起使用

python - 在 Python 中,使用列表推导还是 for-each 循环更好?

python - 添加swig pythoncode以在Python对象上设置thisown标志

python - Python中将json转换为coo稀疏矩阵

python - 只创建一个 zip 包而不是每个文件的校验和就足够了吗

python - 随机 "pythonw.exe has stopped working"崩溃

python - 修改时间戳以按 ID 排序

python 在自定义类上设置操作 - 联合定义/查找

python - 为什么我的字符串会删除多个字符?

javascript - 像 JS 中的列表理解之类的东西?