使用for循环创建反向编号列表

use*_*645 0 python for-loop list python-2.7

我有这个功能.

def creates(n): 
    output = []
    for i in range(1, n+1):
        output.append(range(-1, i-1))
    return output
Run Code Online (Sandbox Code Playgroud)

[[1],[2,1],[3,2,1],[4,3,2,1]]当我在代码中不使用反向函数打印创建(4)时,我希望它返回.我知道这是可能的,我觉得我正在使用错误的追加,但我不知道问题在哪里.谢谢!

Dav*_*son 6

你的意思是:

output.append(range(i, 0, -1))
Run Code Online (Sandbox Code Playgroud)

因为range(4, 0, -1)(例如)返回[4, 3, 2, 1].

请注意,这可以用较少的行编写为列表解析:

def creates(n):
    return [range(i, 0, -1) for i in range(1, n+1)]
Run Code Online (Sandbox Code Playgroud)