簡體   English   中英

Python-在列中打印二維數組

[英]Python - printing 2 dimensional array in columns

第一次來這里。
我在發布問題之前做了一些自我搜索,但是,
我找不到確切的答案。
我以前在C / C ++中做過這樣的事情,但在這里我有點困惑。

我想打印這個:

table = [ ['A','B','C','D'], ['E','F','G','H'], ['I','J','K','L'] ]

這條路:

'A'   'E'   'I'  
'B'   'F'   'J'  
'C'   'G'   'K'  
'D'   'H'   'L'  

自動循環。
第一行中每個表的第一個變量,第二行中第二個表,依此類推...
我嘗試使用2 for循環,但由於我用完了索引,所以做錯了。

編輯-這部分已解決,但還有一個問題

我有:

tableData = [ ['apple', 'orange', 'cherry', 'banana'],  
              ['John', 'Joanna', 'Sam', 'David'],  
              ['dog', 'cat', 'mouse', 'rat'] ]  

它必須看起來像這樣:

|   apple   |  John  |  dog  |  
|   orange  | Joanna |  cat  |
|  cherry   |  Sam   | mouse |
|  banana   | David  |  rat  |  

“功能應能夠管理不同長度的列表,並且
計算一個字符串需要多少空間(分別為每一列)”。
每個字符串都必須在其列的中心。

我嘗試打印具有壓縮對象的先前表格

for row in zip(*table):
    print('| ', ' | '.join(row), ' |')  

|  A | E | I  |
|  B | F | J  |
|  C | G | K  |
|  D | H | L  |  

但我不知道這種情況下會發生什么

您可以zip()str.join()print

In [1]: table = [ ['A','B','C','D'], ['E','F','G','H'], ['I','J','K','L'] ]

In [2]: for row in zip(*table):
   ...:     print(" ".join(row))
   ...:     
A E I
B F J
C G K
D H L

或者,使用單行代碼版本以換行符連接行:

>>> print("\n".join(" ".join(row) for row in zip(*table)))
A E I
B F J
C G K
D H L

無論列表中的信息是什么,您都可以在這里運行。

table = [["a","b","c","d"],["e","f","g","h"],["i","j","k","l"]]
max = len(table[0])
max2 = len (table)
string = []

for a in range(0,max):
    for b in range(0,max2):
        if len(string) == max2:
            string = []
        string.append(table[b][a])
    print string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM