Python 删除txt行中的空白并将值添加到列表中
我有一个.txt文件中的以下文本行Python 删除txt行中的空白并将值添加到列表中,python,python-3.x,list,Python,Python 3.x,List,我有一个.txt文件中的以下文本行 0.14999999999999999 0.20000000000000001 0.29999999999999999 0.34999999999999998 0.50000000000000000 0.59999999999999998 0.69999999999999996 0.72999999999999998 0.84999999999999998
0.14999999999999999 0.20000000000000001 0.29999999999999999 0.34999999999999998 0.50000000000000000 0.59999999999999998 0.69999999999999996 0.72999999999999998 0.84999999999999998 0.90000000000000002 \n
我一直面临着一个问题,那就是如何将第一行写入列表。我尝试过line.strip(),但这只处理了第一个和最后一个空格。还有我无法摆脱的空间。如下所示:
'0.14999999999999999 0.20000000000000001 0.29999999999999999 0.34999999999999998 0.50000000000000000 0.59999999999999998 0.69999999999999996 0.72999999999999998 0.84999999999999998 0.90000000000000002'
我也不能用“”来代替所有的“”,因为所有的数字都会被揉成一团。我也不能假设空格的数量,也不能假设“.”前面的空格数量,因为我可能有大于或等于10的数字。使用
re.split
下面是一个例子
a = '0.14999999999999999 0.20000000000000001 0.29999999999999999 0.34999999999999998 0.50000000000000000 0.59999999999999998 0.69999999999999996 0.72999999999999998 0.84999999999999998 0.90000000000000002'
import re
output = re.split(' +', a)
输出是
['0.14999999999999999',
'0.20000000000000001',
'0.29999999999999999',
'0.34999999999999998',
'0.50000000000000000',
'0.59999999999999998',
'0.69999999999999996',
'0.72999999999999998',
'0.84999999999999998',
'0.90000000000000002'].
如果希望输出中的每个元素都变为浮点,请使用map
output = list(map(float, output))
使用
re.split
下面是一个例子
a = '0.14999999999999999 0.20000000000000001 0.29999999999999999 0.34999999999999998 0.50000000000000000 0.59999999999999998 0.69999999999999996 0.72999999999999998 0.84999999999999998 0.90000000000000002'
import re
output = re.split(' +', a)
输出是
['0.14999999999999999',
'0.20000000000000001',
'0.29999999999999999',
'0.34999999999999998',
'0.50000000000000000',
'0.59999999999999998',
'0.69999999999999996',
'0.72999999999999998',
'0.84999999999999998',
'0.90000000000000002'].
如果希望输出中的每个元素都变为浮点,请使用map
output = list(map(float, output))
您甚至不需要
re
。只需在线上使用split
'12345'.split()
['1', '2', '3', '4', '5']
您甚至不需要re
。只需在线上使用split
'12345'.split()
['1', '2', '3', '4', '5']