如何在python中将数组打印为表

时间:2016-05-07 20:44:06

标签: python

我正在尝试打印一个数组: 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)]

6 个答案:

答案 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()