Why out of range?

Could someone please tell me why I get this error?

result[i][j+1]=X[i][j]
IndexError: list assignment index out of range

Here is my code:

def  matrixTranspose(X):
    result=[[0 for k in range (len(X))] for l in range (len(X[0]))]
    for i in range(len(X)):
        for  j in range (len(X[0])):
            result[i][j+1]=X[i][j]
    return result


m1=[]
r=input("enter The no. of rows:")
c=input("enter The no. of columns:")
s=[[0 for i in range (c)]for j in range (r)]
for i in range (r):
row=[]
for j in range (c):
    x=input("Enter Value")
    row.append(x)
m1.append(row)


print m1
m2=matrixTranspose(m1)
print m2

Upvotes: 0

Views: 79

Answers (1)

xnx
xnx

Reputation: 25478

You can't index result at len(X[0])+1, because its dimensions are len(X) by len(X[0]). Also your matrixTranpose function doesn't seem to be taking the transpose of X. Presumably you mean:

def  matrixTranspose(X):
    result=[[0 for k in range (len(X))] for l in range (len(X[0]))]
    for i in range(len(X)):
        for  j in range (len(X[0])):
            result[j][i]=X[i][j]
    return result

Upvotes: 1

Related Questions