如何在Python中读取通用用户格式的矩阵

如何在Python中读取通用用户格式的矩阵,python,Python,我想使用python从控制台读取如下方形矩阵: 1 2 3 2 1 6 5 1 2 我试着用这个: matrix = [[int(input()) for x in range (n)] for y in range(n)] 但在这里,每个元素可以逐行给出,而不像矩阵。我们也可以把它作为一行来读,但是我怎么能像上面那样读呢?你可以这样做: n=3 [list(map(int, input().split(' '))) for y in range(n)] 输入/输出: 1 2 3 2 1

我想使用python从控制台读取如下方形矩阵:

1 2 3 
2 1 6
5 1 2
我试着用这个:

matrix = [[int(input()) for x in range (n)] for y in range(n)]

但在这里,每个元素可以逐行给出,而不像矩阵。我们也可以把它作为一行来读,但是我怎么能像上面那样读呢?

你可以这样做:

n=3
[list(map(int, input().split(' '))) for y in range(n)]
输入/输出:

1 2 3
2 1 6
5 1 2
Out[50]: [[1, 2, 3], [2, 1, 6], [5, 1, 2]]

@SuppressionLayer的答案有效,但只接受由
n
定义的固定大小的矩阵。由于行数与列数相等,您只需从第一次输入中获取列数,并在用户输入相同行数时停止输入:

l = []
while not l or len(l) < len(l[0]):
    l.append(list(map(int, input().split())))
l
将变成:

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

这回答了你的问题吗?这似乎适用于逐行给定的字符串输入。我想将其存储为整数列表elements@AkhilaRajeev控制台输入是字符串输入。你只需要转换它,好的。。谢谢@John Coleman但这是一行输入?好的。谢谢:)@blhsing
[[1, 2, 3], [2, 1, 6], [5, 1, 2]]