问题:-编写一个Python函数transpose( m ),该函数以二维矩阵m为输入,并返回m的转置。参数m应保持不受函数的干扰。
def transpose(l):
m=l[:]
lst=[[] for x in range(len(m[0)]
for i in range(0,len(m)):
    for j in range(0,len(m[i])):
        lst[j].append(m[i][j])
return lst
l=[[1,2,3,4,5],[4,5,6,7,8,9]]错误
lstj.append(mi)
IndexError:列出超出范围的索引
发布于 2022-02-10 17:39:39
List l有两个包含5和6个元素的列表。
因此,j在range(len(m[1]))中的范围是0-5(6个数字),这导致索引超出lst的范围(只有5个元素)。
def transpose(l):
    lst=[[] for x in range(len(l[0]))]
    for i in range(len(l)):
        for j in range(len(l[i])):
            lst[j].append(l[i][j])
    return lst
l = [[1,2,3,4,5],[4,5,6,7,8]]但是我会在函数的开头添加一个检查部分。
def transpose(l):
    iterator = iter(l)
    lists_len = len(next(iterator))
    if not all(len(a) == lists_len for a in iterator):
        # Do something here
    lst=[[] for x in range(len(l[0]))]
    for i in range(len(l)):
        for j in range(len(l[i])):
            lst[j].append(l[i][j])
    return lsthttps://stackoverflow.com/questions/71069612
复制相似问题