2016-09-25 116 views

回答

2

您可以使用列表理解与3range和输出片:

>>> 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]] 

范围有三个参数,其中第一个是范围的开始,第二个是结束,第三个是一步。如果您使用Python 2,请改为使用xrange

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将子表的大小。但是在上面的代码中,我使用了两次目标,我希望找到一次使用目标的方法。