无需理解的嵌套列表

tib*_*ish 1 python python-3.x

在Python中迈出第一步:)

我正在尝试获得以下输出:[[1],[1、2],[1、2、3],[1、2、3、4],[1、2、3、4、5] ,...,[1、2、3、4,...,n]]

例如:n = 4 [[1],[1、2],[1、2、3],[1、2、3、4]

不能 /不允许使用列表理解。

这是我尝试的:

def lists(n):
    matrix = []
    for i in range(1, n+1):
        matrix.append([])
        for j in range(1,i+1):
            matrix[i].append(j)
    print(matrix)

lists(5)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:IndexError:列表索引超出范围。

这是为什么?将不胜感激

CDJ*_*DJB 5

你差点就吃了!

def lists(n):
    matrix = []
    for i in range(0, n):
        matrix.append([])
        for j in range(1,i+2):
            matrix[i].append(j)
    print(matrix)
Run Code Online (Sandbox Code Playgroud)

  • @Artog这是正确的。尽管列表*索引*是基于0的,但列表*内容*应该是基于1的。您可以使用range(1,i + 2)来适应这个问题,也可以使用range(i + 1)并将j + 1附加到每个列表中。 (3认同)