Python-删除 float 字符串

标签 python string python-2.7 list floating-point

我有一个包含很多行的文件,每行都包含由逗号 , 分隔的数字。

某些行包含 float 字,即:['9.3']

我一直在尝试从列表中删除这些号码大约 1 小时~但没有成功。每当它尝试在 float 上使用 int 时,都会出错。我不知道如何从行中删除这些 float 数字

数字:https://pastebin.com/7vveTxjW

这是我到目前为止所做的:

with open('planets.txt','r') as f:
    lst = []
    temp = []
    for line in f:
        l = line.strip()
        l = l.split(',')
        for x in l:
            if x == '':
                l[l.index(x)] = 0
            elif x == '\n' or x == '0':
                print "removed value", l[l.index(x)]
                del l[l.index(x)]

        try:
            temp.append([int(y) for y in l])
        except ValueError:
            pass

最佳答案

首先,修改正在迭代的列表是一个坏主意。更好的想法可能是从可以转换为 int 的元素构造一个新列表。

def is_int(element):
    try:
        int(element)
    except ValueError:
        return False
    return True

with open('planets.txt','r') as f:
    lst = []
    temp = []
    for line in f:
        l = line.strip().split(',')

        temp.append([int(y) for y in l if is_int(y)])

如果你想包含float值的积分部分,你可以这样做:

def is_float(element):
    try:
        float(element)
    except ValueError:
        return False
    return True

with open('planets.txt','r') as f:
    lst = []
    temp = []
    for line in f:
        l = line.strip().split(',')

        temp.append([int(float(y)) for y in l if is_float(y)])

关于Python-删除 float 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43542392/

相关文章:

python - 并行化字典理解

python - 如何将 int 转换为有符号 char?

python - 有没有办法在配置文件中配置 flask 应用程序端口?

python - CPU绑定(bind)任务中的多线程和单线程性能问题

python - 识别正在传输 icmp 数据包的进程的 PID

string - sprintf(将 int 转换为 char[])

通过引用 voodoo 的 C 字符串

python - 重置类统计数据的想法

java - 在特定字符之前插入字符 Java

python - 查找前 10 个并将其从厘米转换为英寸 - Python