矩阵输入结果(Python)

时间:2014-04-12 19:50:56

标签: python list input matrix

我在python中编写了这段代码,用于输入矩阵:

def gestionmatrice():       

    print("Entrez la matrice,séparé par des espaces pour chaques colonnes")
    print("une rangée par ligne,et faites un ligne vide pour terminer")
    matrix = []
    while True:
        line = input()
        if not line: break
        values = line.split()
        row = [int(value) for value in values]
        matrix.append(row)

    print(matrix)

用户通过输入以空格分隔的每行所需的int值来输入矩阵,然后按Enter确认行,input确认行。input。要完成,用户必须1 2 3一个空行,然后按输入。最后,我希望通过打印来查看矩阵;问题是它没有正常工作;例如,如果用户在下一行输入4 5 6然后print(matrix),则[[1, 2, 3], [4, 5, 6]]将结果为:print。它应该是1 2 3 4 5 6 { {1}}所以有些东西不起作用。需要修改什么?提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以在Python中打印矩阵,如下所示:

def print_matrix(matrix):
    print('\n'.join([' '.join(map(str, row)) for row in matrix]))

这是一个获取矩阵函数:

def get_matrix():
    matrix = []
    line = input()
    while line:
        matrix.append(map(int, line.split()))
        line = input()
    return matrix

演示:

>>> matrix = get_matrix()
1 2 3
4 5 6
7 8 9

>>> print_matrix(matrix)
1 2 3
4 5 6
7 8 9

答案 1 :(得分:0)

[[1, 2, 3], [4, 5, 6]]

是矩阵的默认打印(在许多语言中,不仅仅是python)。

要达到你想要的效果,你必须做一些像

这样的事情
import sys
for i in xrange(2):
    for j in xrange(3):
        sys.stdout.write(str(matrix[i,j] + " "))
    sys.stdout.write("\n")

答案 2 :(得分:0)

我不确定你为什么要这样,但你可以这样做:

而不是print(matrix),请执行:

>>> print(*(' '.join(map(str, sub)) for sub in matrix), sep='\n')
1 2 3
4 5 6

这是快速修复。