我想知道一个逐个输入二维矩阵元素的简短方法。 (仅使用默认的python模块)
我目前的代码:
i= []
for x in range(3):
i.append(map(int, raw_input("enter the element").split()))
for y in range(3):
i.append(map(int, raw_input("enter the element").split()))
print i
我希望结果如下:
[[1,2,3],
[4,5,6],
[7,8,9]]
但最终得到:
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]]
我已经检查了潜在的重复项,但找不到任何可能会占用矩阵的每个元素。
任何简短的方法都会受到赞赏。
编辑:行和列应单独更改。 因此,如果我们输入3行和4列,则元素应自动放入各自的位置。
示例:对于2x2矩阵
如果输入为:1,2,1,2
那么矩阵应该是:
[[1,2],
[1,2]]
答案 0 :(得分:3)
或者这个:
<强>更新强> 改为我猜你想要的格式:)
rows = 3
cols = 3
result = [[int(raw_input("row: %d col: %d => " % (row, col)))
for col in xrange(cols)] for row in xrange(rows)]
答案 1 :(得分:2)
详细,但有效:
M = []
for i in range(rows):
row = []
M.append(row)
for j in range(rows):
x = raw_input("Number for element ({}, {}): ".format(i, j))
row.append(int(x))
如果您正在处理矩阵,您还应该让NumPy看一看。 然后你可以这样做:
import numpy as np
M = np.array((rows, cols))
for i in range(rows):
for j in range(cols):
M[i, j] = int(raw_input("Number: "))
答案 2 :(得分:1)
试试这个
i= []
for x in range(3):
i.append([int(j) for j in raw_input("enter the element").split()])
print i