基本上,我想在列表中对项目进行分组。例如:
[1, 2, 3, 4, 5, 6]
,我想要[[1, 2, 3], [4, 5, 6]]
[1, 2, 3, 4, 5, 6, 7]
,我想要[[1, 2, 3], [4, 5, 6], [7]]
我知道如何取消嵌套列表,但我不知道如何创建嵌套列表。
答案 0 :(得分:2)
您可以将列表理解与range
一起使用,并输出3
的切片:
>>> l = [1, 2, 3, 4, 5, 6, 7]
>>> [l[i:i+3] for i in range(0, len(l), 3)]
[[1, 2, 3], [4, 5, 6], [7]]
>>> l = [1, 2, 3, 4, 5, 6]
>>> [l[i:i+3] for i in range(0, len(l), 3)]
[[1, 2, 3], [4, 5, 6]]
Range有三个参数,第一个是范围的开始,第二个是结束,第三个是步。如果您使用的是Python 2,请改用xrange
。
答案 1 :(得分:1)
我认为你可以这样做:
target = [1, 2, 3, 4, 5, 6, 7]
n = 3
print([target[i:i+n] for i in range(0, len(target), n)])
您可以通过更改n来更改子列表的大小。但是在上面的代码中,我使用了两次目标,我希望找到一种方法使用目标一次。