我正在尝试打印一个数组:
Table = [(0,0,0),(0,0,1),(0,1,0)]
。
因此,我想将此数组打印为如下表:
0 0 0
0 0 1
0 1 0
我该怎么做?
我尝试了一个简单的print Table
,但这会打印出这样的数组:
[(0,0,0),(0,0,1),(0,1,0)]
答案 0 :(得分:3)
您是否尝试过基本的for
循环?
for line in Table:
print ' '.join(map(str, line))
它在Python 3中更漂亮:
for line in Table:
print(*line)
答案 1 :(得分:2)
@ Tigerhawk的答案非常好,如果你想要一些简单的东西。
对于其他情况,我强烈建议您使用 tabulate 模块,从而获得极大的灵活性,并克服潜在的问题,例如几位数的整数,这会导致转移:
1 2 3
1 12 3
1 2 3
答案 2 :(得分:1)
您可以使用PrettyTable包:
包含三列的变量(Table
)的示例:
from prettytable import PrettyTable
def makePrettyTable(table_col1, table_col2, table_col3):
table = PrettyTable()
table.add_column("Column-1", table_col1)
table.add_column("Column-2", table_col2)
table.add_column("Column-3", table_col3)
return table
答案 3 :(得分:1)
在python3中,您可以将数组作为表格打印在一行中:
[print(*line) for line in table]
答案 4 :(得分:0)
import string
for item in [(0, 0, 0), (0, 0, 1), (0, 1, 0)]:
temp = (' '.join(str(s) for s in item) + '\n')
print(string.replace(temp, '\n', ''))
测试
$ python test.py
0 0 0
0 0 1
0 1 0
答案 5 :(得分:-2)
我通常做这样的事情:
import random
def printSet(min, max, *excepting):
r = random.randint(min, max)
while True:
if r not in excepting:
return r
r = random.randint(min, max)
print printSet(0, 100, 5, 25, 6, 2, 1)
此代码为您提供了列号和行号:
def printMatrix(s):
for i in range(len(s)):
for j in range(len(s[0])):
print("%5d " % (s[i][j]), end="")
print('\n')
输出如下:
def printMatrix(s):
# Do heading
print(" ", end="")
for j in range(len(s[0])):
print("%5d " % j, end="")
print()
print(" ", end="")
for j in range(len(s[0])):
print("------", end="")
print()
# Matrix contents
for i in range(len(s)):
print("%3d |" % (i), end="") # Row nums
for j in range(len(s[0])):
print("%5d " % (s[i][j]), end="")
print()