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
私は列の順序を変更したいです。
まず、セパレータを使用してテキスト間の列を区切ります。 p.e.
(?<=\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']]
私はキャプチャする方法見当がつかないスペース。
I、セパレータの使用後にスペースをキャプチャするためにこの試み:
#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