我是Python的新手。我想用数字分割一行
例如 number_line = 9000 -0.3 89000
我尝试使用re.split,因为可能存在连续的空格
number_line_split=re.split('\s+',number_line)
但是我得到了错误: “预期的字符串或类似字节的对象”
谢谢
答案 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_line
将str(number_line)
转换为字符串