2017-05-30 18 views
2

私はその後、私は例えば、指定された列幅Pythonで列幅を指定してリストを印刷するにはどうすればよいですか?

でリストを印刷することができ、私はcolumn = 5を印刷する方法

mylist = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 

新しいライン

print(mylist, column= 5) 
[ 1, 2, 3, 4, 5, 
    6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 
16, 17, 18, 19, 20] 

それともたいようなリストを持っていますcolumn = 10新しい行

print(mylist, column= 10) 
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 

私はそれを行うためにfor-loopを使うことができると知っていますが、すでにそうするための関数があることを知りたいですか?

答えて

5

リストの代わりにnumpy配列を使用し、配列を変形します。もちろん

>>> import numpy as np 
>>> array = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]) 
>>> 
>>> column = 5 
>>> print(array.reshape(len(array)/column, column)) 
[[ 1 2 3 4 5] 
[ 6 7 8 9 10] 
[11 12 13 14 15] 
[16 17 18 19 20]] 
>>>>>> column = 10 
>>> print(array.reshape(len(array)/column, column)) 
[[ 1 2 3 4 5 6 7 8 9 10] 
[11 12 13 14 15 16 17 18 19 20]] 

arraycolumnに同じサイズの列を分割することができない場合は、これはValueErrorをスローします。

3

わからない理由が、私はあなたが

import numpy as np 
array=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]) array 
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
     18, 19, 20]) 
array.reshape(-1,5) 

-1に行数を固定することにより、numpyの配列を再構築使用して行うことができます達成したいと思うものに近いものだと思いますが

array([[ 1, 2, 3, 4, 5], 
     [ 6, 7, 8, 9, 10], 
     [11, 12, 13, 14, 15], 
     [16, 17, 18, 19, 20]]) 

array.reshape(-1,10) 
を与えます

array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 
     [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]]) 
+1

「reshape」が-1を引数として受け入れることはわかりませんでした。詳細はこちら:https://stackoverflow.com/questions/18691084/what-does-1-mean-in-numpy-reshape – timgeb

+1

リンクありがとうございます – Eliethesaiyan

1

となります。スライシングも使用できます。

mylist = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 

def print_list(mylist, no_of_cols): 
    start_index = 0 
    for i in range(no_of_cols, len(mylist), no_of_cols): 
     print mylist[start_index:i] 
     start_index = i 

    if len(mylist) > start_index: 
     print mylist[start_index:len(mylist)] 

print_list(mylist, 5) 
関連する問題