2017-03-24 6 views
-1

私はPythonで単純な3D配列を作成しましたが、これを行で印刷する必要があります。3D配列をPythonで印刷するには?

apple=[[["SNo."],["Computers"],["Mobile"]], 
     [["1"],["iMac"],["iPhone"]], 
     [["2"],["Macbook"],["iPod"]]] 

私は以下のように印刷することにしたい。

SNo. Computers Mobile 
1 iMac iPhone 
2 Macbook iPod 
+0

は、どのようにそれを見てする必要がありますか? –

答えて

0

あなたが持つことを行うことができます:

for l in apple: 
    print(*[e[0] for e in l]) 

しかし

率直に言って、最後の要素はすべて1要素のリストなので、私はあなたが開始するための2次元配列を持って、それを作成するコードを変更すべきだと思います。すべてがそのように簡単になります。それが必要

0

データは、私には2Dに見えること。あなたが本当に3Dの配列を印刷したい場合は、自分でループいずれかを書き込まないとnumpyを使用することができます。

import numpy as np 

apple_np = np.array(apple) 
print apple_np 

あなたのデータを、しかし3Dではないので、あなたは予想通り、それは印刷しません。何が必要2次元配列である:

apple=[["SNo.", "Computers", "Mobile"], 
     ["1", "iMac", "iPhone"], 
     ["2", "Macbook", "iPod"]] 

apple_np = np.array(apple) 
print apple_np 

あなたのpython 2.7を使用している場合、あなたは素敵な形式でテーブルをプリントアウトするには、次のように使用することができます。

width = max([len(el) for row in apple for el in row]) + 1 

for row in apple: 
    for el in row: 
     print ("{:"+str(width)+"s}").format(el), 
    print "" 
0

は動作します:

for i in apple: 
    for j in i: 
     helper.append(j) 
    counter = 0 
    assistant = [] 
for x in helper: 
    counter += 1 
    assistant.append(x[0]) 
    if counter == 3: 
     print(" ".join(assistant)) 
     counter = 0 
     assistant = []