创建列表列表。修改lis中的元素

2024-10-02 02:32:55 发布

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

要求:

定义函数createMatDimXDim(dim) 此函数接收大于或等于2的正整数,并返回一个维数为dim x dim的方阵,其中的内容是等于行号乘以10再加上列号的数字。你知道吗

预期产量:

print (createMatDimXDim (4)) 
[[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]

我的代码:

def createMatDimXDim (dim):
    lis=[[0] for i in range(dim)]
    for i in range(dim):
        lis[i][0]=i*10
        for i in range(dim):
           lis[i].append(int(lis[i][0])+1)
    return lis

我的代码输出:

[[0, 1, 1, 1, 1], [10, 1, 11, 11, 11], [20, 1, 1, 21, 21], [30, 1, 1, 1, 31]]

我想这么做:

lis[i].append(int(lis[i][i-1])+1)

但它给了我一个IndexError。你知道吗


Tags: 函数代码in内容for定义rangeint
3条回答
def createMatDimXDim(dim):
    return [[j for j in range(i*10, i*10+dim)] for i in range(dim)]

你可以使用二维列表。你知道吗

def createMatDimXDim(dim):
    return [[j for j in range(i*10, i*10+dim)] for i in range(dim)]
createMatDimXDim(4)

输出:

[[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]
def createMatDimXDim (dim):
    lis=[[0] for i in range(dim)]
    for i in range(dim):
        lis[i][0]=i*10
        for j in range(dim-1):               # for the nested loop you need to use a new 
                                             # variable j
           lis[i].append(int(lis[i][j])+1)
    return lis

createMatDimXDim(4)
# [[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]

另一个列表理解选项:

dim = 4
[[i * 10 + j for j in range(dim)] for i in range(dim)]
# [[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]

相关问题 更多 >

    热门问题