使用for循环创建具有相同元素的多个列表

2024-10-02 12:35:44 发布

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

所以我有一个函数。在

def createj(n): 
    output = []
    for i in range(n+1):
        output.append(range(1,i+1))
    return output

目前,当我打印createj(2)时,它给了我[[],[1],[1,2,3]]。我希望它返回[[1],[2,2]]或当我打印createj(4)时;它打印[[1],[2,2],[3,3,3],[4,4,4]]。我知道我必须使用for循环,但很明显在for循环中有一个很大的错误,它不断地出错。谢谢!在


Tags: 函数inforoutputreturndef错误range
3条回答

更改追加行

output.append([i] * i)

使用列表理解是很好的。在

output = [[i] * i for i in range(1, n + 1)]

Create List of Single Item Repeated n Times in Python

def create(n):
    output = []
    for i in range(1,n+1):
        output.append([i] * i)
    return output

您需要设置将项附加到列表的次数。乘以范围的当前值。另外,将范围设置在1和n+1之间,否则第一个值将为0,并在第一次迭代期间为您提供一个空列表。在

如果要将大值放入函数中,您可能还想尝试xrange,而不是{}。range生成一个列表,而{}不生成,因此它更快。在

相关问题 更多 >

    热门问题