输入二维矩阵的每个元素的最短方法
Shortest way to input each and every element of a 2D Matrix
我想知道一种将二维矩阵的元素一个一个输入的简单方法。 (仅使用默认 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]]
试试这个
i= []
for x in range(3):
i.append([int(j) for j in raw_input("enter the element").split()])
print i
或者这个:
更新:
更改为我猜你想要的格式:)
rows = 3
cols = 3
result = [[int(raw_input("row: %d col: %d => " % (row, col)))
for col in xrange(cols)] for row in xrange(rows)]
冗长,但有效:
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: "))
我想知道一种将二维矩阵的元素一个一个输入的简单方法。 (仅使用默认 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]]
试试这个
i= []
for x in range(3):
i.append([int(j) for j in raw_input("enter the element").split()])
print i
或者这个:
更新: 更改为我猜你想要的格式:)
rows = 3
cols = 3
result = [[int(raw_input("row: %d col: %d => " % (row, col)))
for col in xrange(cols)] for row in xrange(rows)]
冗长,但有效:
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: "))