首页 > 解决方案 > 列表循环中每个项目的范围列表

问题描述

我正在尝试从一个平面数字列表中创建一个范围列表。它在通过简单范围循环时工作,但在尝试循环自定义列表时,它会给出空子列表。我刚刚开始我的 python 冒险,不要残忍;)任何帮助将不胜感激。

预期输出来自列表[0, 1, 2]->[[0], [0, 1], [0, 1, 2]]

a = [1,2]
b = []

def makerange(n):
    b.append(list(range(0, n, 1)))

for a in range(10):
    makerange(a)

print(b)

[[], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5, 6], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7, 8]]

标签: pythonfunctionloopsrange

解决方案


不要过于复杂:

>>> a = [0,1,2]
>>> [list(range(n+1)) for n in a]
[[0], [0, 1], [0, 1, 2]]

将 1 添加到range端点以包含结束值。


推荐阅读