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