在python中将纯字符序列转换为单独的浮点数

时间:2013-11-23 21:41:10

标签: python string transformation

我有数千行数据格式:6580,f | S,17:42:29.3,-39:01:48,2.19,2.41,-0.22

我想只取最后一个数字(在本例中为-0.22),这样我就可以进行一些计算了。 我的问题是:行不是字符串,并且它们具有可变长度(从开头/结尾切片不是一个选项)。如何分隔这些逗号并创建字符串或浮点数列表?

有没有办法按照我可以使用的方式分隔该序列,例如“line [6]”来获取最后一个值?

2 个答案:

答案 0 :(得分:0)

如果您需要的浮动数字总是以逗号分隔的line中的最后一个条目float(line.split(',')[-1])应该可以解决问题。

否则我会做类似以下的事情:

def isFloat(val):
    try:
        float(val)
        return True
    except ValueError:
        return False

 number = [x for x in line.split(',') if isFloat(x)][-1]

如果您拥有的所有行都存储在文本文件中,请将其打开并处理您的行:

with open("my_file.txt") as f:
    for line in f:
        # Here goes the code where you're getting the floating number from the line 

答案 1 :(得分:-1)

也许您正在寻找这种语法行[: - 1]将始终为您提供数组中的最后一个元素。

它可能是行[:: - 1]。如果我错了,有人应该纠正我。

是的,如果他们不是字符串,他们是什么?


修改。 它的行[-1], Getting the last element of a list in Python