使用Python制作列表列表

时间:2017-02-27 18:54:15

标签: python list

我遇到了一些对我来说很奇怪的事情,看过这里的一些帖子,我似乎找不到任何人试图做类似的事情。所以我试图创建一个这样的列表列表:

group1 = range(1-10)
group2 = range(10-20)
group3 = range(20-30)
group4 = range(30-40)
group5 = range(40-49)

groups = [group1, group2,group3,group4,group5]

这似乎导致了5个空列表的列表。是什么赋予了?谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

首先,您需要使用range(1,10)

其次,你不会得到一个列表,你会得到一个range对象,它是一个生成器。如果您想要一个实际的列表,那么您必须执行list(range(1,10))

答案 1 :(得分:0)

当你写range(1-10)时,你实际上是从1减去10,即range(1-10)评估为range(-9)。正确的语法是range(1,10)

答案 2 :(得分:0)

我猜你想要一个范围列表,列出1..1010..20之间的范围等等。

所以,你可以使用list comprehension做类似的事情,例如:

a = ((1, 10), (10, 20), (20, 30), (30, 40), (40, 49))
final = [list(range(*val)) for val in a]

print(final)

输出:

>>> [[1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34, 35, 36, 37, 38, 39], [40, 41, 42, 43, 44, 45, 46, 47, 48]]