简体   繁体   English

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

[英]Using for loops to create reversed numbered lists

I have this function. 我有这个功能。

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

I want it to return [[1],[2,1],[3,2,1],[4,3,2,1]] when I print creates(4) without using a reverse function in the code. 我希望在我打印creates(4)而不在代码中使用反向函数时返回[[1],[2,1],[3,2,1],[4,3,2,1]] I know it's possible and I feel like I am using append incorrectly but I don't know where the issue is. 我知道这是可能的,而且我感觉我使用了不正确的附加,但是我不知道问题出在哪里。 Thanks! 谢谢!

You mean to do: 您的意思是:

output.append(range(i, 0, -1))

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

Note that this could be written in fewer lines as a list comprehension: 请注意,这可以用更少的行作为列表理解:

def creates(n):
    return [range(i, 0, -1) for i in range(1, n+1)]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM