Python - 在列

时间:2017-01-07 23:05:30

标签: python arrays loops printing dimensions

第一次来这里 我之前做了一些自己的搜索 然而,发布一个问题,
我无法找到确切答案 我之前在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 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  |  

但我认为在这种情况下接下来会发生什么

2 个答案:

答案 0 :(得分:6)

您可以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

答案 1 :(得分:0)

无论列表中的信息是什么,您都可以使用此功能。

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