python中的矩阵基本帮助

2024-04-19 01:43:38 发布

您现在位置:Python中文网/ 问答频道 /正文

n=input("r")
m=input("c")
l=range(m*n)
for r in range(m):
    for c in range(n):
        l[r][c]=input(" enter no")
for r in range(m):
    for c in range(n):
        print[r][c]
    print

我想练习矩阵问题,但当我用python运行我的矩阵编码时,它给出了一个错误

Traceback (most recent call last):
  File "D:/WORK/Python 2.7/matrix1", line 6, in <module>
    l[r][c]=input(" enter no")
TypeError: 'int' object does not support item assignment

我是一个新的和学生请帮助解释简单请我真的需要了解它


Tags: noinmost编码forinput错误range
3条回答

要创建二维矩阵替换:

l=range(m*n)

签署人:

l=[[0 for i in range(m)] for j in range(n)]  

演示:

>>> n=4
>>> m=3
>>> l=[[0 for i in range(m)] for j in range(n)]  # you can use any value instead of 0 to initialize matrix
>>> l
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

对于创建矩阵,我建议您使用numpy

这里有一个例子example

使用l=range(m*n)可以创建一个列表,而不是二维矩阵。你知道吗

n=input("r")
m=input("c")
myMatrix = [[0 for col in xrange(m)] for row in xrange(n)]
for row in xrange(n):
    for col in xrange(m):
        myMatrix[row][col] = input("enter no: ")

现在,看看矩阵:

for row in myMatrix:
    for num in row:
        print num,
    print ""

您的问题来自这样一个事实:range(m*n)返回一个平面列表,而您需要的是一个子列表列表(其中每个子列表是矩阵中的一行)

相关问题 更多 >