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'
自动循环。
第一行中每个 table 的第一个变量,第二行中的第二个变量,依此类推...
我尝试使用 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 |
"函数应该能够管理不同长度的列表并且
计算一个字符串需要多少 space(分别针对每一列)。
每个字符串都必须在其列中居中。
我尝试打印之前的 table 具有压缩对象
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
第一次来
我之前自己做了一些搜索
但是,发布问题
我找不到确切的答案。
我以前在 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'
自动循环。
第一行中每个 table 的第一个变量,第二行中的第二个变量,依此类推...
我尝试使用 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 |
"函数应该能够管理不同长度的列表并且
计算一个字符串需要多少 space(分别针对每一列)。
每个字符串都必须在其列中居中。
我尝试打印之前的 table 具有压缩对象
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