0
300 january 10 20
300 februari 120,30 10
300 march 20,30 10
300,10 april 20,30 10
300 may 420,10 10,46
我要重新排序列。
我做的第一件事是使用分隔符分隔文本之间的列。体育
(?<=\S)(\s{2,})(?=\S)
或
(?<=\S)(\s{1,})(?=\S)
然后我想放列在一个名单如下:
|300 | |january | | 10 | |20 |
|300 | |februari| |120,30| |10 |
|300 | |march | |20,30 | |10 |
|300,10| | april | | 20,30| |10 |
|300 | |may | |420,10| |10,46|
预期输出:
mylist = [['300 ','january ',' 10 ','20 ']
['300 ','februari','120,30','10 '],
['300 ','march ','20,30 ','10 '],
['300,10',' april ',' 20,30','10 '],
['300 ','may ','420,10','10,46']]
我不知道如何捕捉空间。
这个我试过使用分离后捕捉空间:
#find the max length of an element in a column
lengte_temp = [[len(x) for x in row] for row in mylist]
maxlengthcolumn = max(l[len(mylist[0])-1] for l in length_temp)
#add spaces to elements
for b in range(0,len(mylist)):
if length_temp[b][len(mylist[-1])-1] < maxlengthcolumn:
mylist[b][len(mylist[-1])-1] = mylist[b][len(mylist[-1])-1] + ' '*(maxlengthcolumn-length_temp[b][len(mylist[-1])-1])
,但一列中的元素在此之前删除的空间。
如何在上面的示例中捕获列表中的元素?
的'csv'模块? –
@Chris_Rands,在我看来,在我的例子中,csv模块并不尊重空格。 (它删除空格并加入字符串,之后在元素之间放置一定数量的空格) – Reman
你不能只使用str.split()方法吗?如果我没有弄错,它会保留空间。 – Zafi