Python:分割由空格分隔的数字行

时间:2020-09-21 04:08:19

标签: python csv

我是Python的新手。我想用数字分割一行

例如 number_line = 9000 -0.3 89000

我尝试使用re.split,因为可能存在连续的空格

number_line_split=re.split('\s+',number_line)

但是我得到了错误: “预期的字符串或类似字节的对象”

谢谢

2 个答案:

答案 0 :(得分:1)

您需要先用引号引起来,以便Python将其解释为字符串:

number_line = "9000 -0.3 89000"

然后,您可以使用str.split()方法创建一个新列表,其中包含每个数字作为字符串,并处理了额外的空格:

>>> number_line_split = number_line.split()
>>> number_line_split
['9000', '-0.3', '89000']

如果要将剩余的字符串转换为可以进行算术运算的实际数字,则可以使用list comprehension在每个字符串上调用float()

>>> numbers = [float(s) for s in number_line_split]
>>> numbers
[9000.0, -0.3, 89000.0]
>>> numbers[0] + numbers[1]
8999.7

您之前遇到的TypeError是因为number_line传递给re.split时是无效类型。如果number_line是一个字符串,则可以正常工作,尽管之后您仍然需要将字符串列表转换为浮点数:

>>> import re
>>> number_line = "9000 -0.3 89000"
>>> re.split('\s+', number_line)
['9000', '-0.3', '89000']

答案 1 :(得分:-1)

也许用number_linestr(number_line)转换为字符串