我所拥有的数据中,每行最多有6列中有一定数量的数据,而不是在所有列中。有时,数据位于第3和第4列,有时是第4和第6列,等等。如果列中没有数据,我希望在每一行中创建一个列表(并扩展列表以继续添加行),并在列表中添加一个空白项。本质上说,每一行都有6条数据,即使有些数据是空白的。列之间的间距不是固定的,或者至少不能保证是固定的。
当每一行都有6条数据时,我就没有问题了,因为我可以加入、拆分和追加来构建我的列表。该问题涉及少于6个项的行。
例如,请参阅下面的数据。
CCW40109 D+L -0.13 0.60
CCW40109 4D+L+OBE 8.77 17.38
CCW40109 4D+L-OBE -8.56 -17.65
CCW40109 4D+L+SSE 24.22 12.04下面是我希望列表在每一行中运行的方式。包含空列的24个空元素的单个列表。
[CCW40109,D+L,-0.13, ,0.60, ,CCW40109,4D+L+OBE, ,8.77,17.38, ,CCW40109,4D+L-OBE,-8.56, ,-17.65, ,CCW40109,4D+L+SSE, , ,24.22,12.04]我一直把头撞在墙上。任何帮助都是非常感谢的。
发布于 2022-02-05 05:32:40
就像这样:
#123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-
data = """\
CCW40109 D+L -0.13 0.60
CCW40109 4D+L+OBE 8.77 17.38
CCW40109 4D+L-OBE -8.56 -17.65
CCW40109 4D+L+SSE 24.22 12.04"""
cols = [0, 19, 36, 50, 64, 79, 999]
alldata = []
for line in data.splitlines():
fields = [ line[c1:c2-1].rstrip() for c1,c2 in zip(cols,cols[1:]) ]
alldata.append( fields )
from pprint import pprint
pprint(alldata)输出:
[['CCW40109', 'D+L', '0.13', '', ' 0.60', ''],
['CCW40109', '4D+L+OBE', '', ' 8.77', '17.38', ''],
['CCW40109', '4D+L-OBE', '8.56', '', '17.65', ''],
['CCW40109', '4D+L+SSE', '', '', '24.22', '12.04']]https://stackoverflow.com/questions/70995507
复制相似问题