Python 创建列表列表时基于索引的弹出元素+;这个项目突然出现了

Python 创建列表列表时基于索引的弹出元素+;这个项目突然出现了,python,list,slice,Python,List,Slice,关于如何从平面列表中创建列表,我已经看到了非常好的答案。我的问题是在创建列表之前弹出一些值,并得到以下结果: l = ['119', '222', '219', '293', '4', '179', '124', '500', '235', '7'] wanted_output = [['119', '222', '219', '293'], '4', ['179', '124', '500', '235'], '7'] 到目前为止,我已经尝试过: ll = [l[i:i+4] for i

关于如何从平面列表中创建列表,我已经看到了非常好的答案。我的问题是在创建列表之前弹出一些值,并得到以下结果:

l = ['119', '222', '219', '293', '4', '179', '124', '500', '235', '7']

wanted_output = [['119', '222', '219', '293'], '4', ['179', '124', '500', '235'], '7']
到目前为止,我已经尝试过:

ll = [l[i:i+4] for i in range(0, len(l), 4)]
[['119', '222', '219', '293'], ['4', '179', '124', '500'], ['235', '7']]

结果不是我想要的。我希望实现每四个元素包含一个列表,下一个元素(即每四个元素)是独立的单个元素,例如在本例中,4和7是我想要得到的元素。

如果输入的长度可以被5整除,则可以使用

>>> [x for i in range(0, len(l), 5) for x in (l[i:i+4], l[i+4])]
[['119', '222', '219', '293'], '4', ['179', '124', '500', '235'], '7']
from itertools import chain

l = ['119', '222', '219', '293', '4', '179', '124', '500', '235','7']

list(chain.from_iterable((a, b) for *a, b in zip(*[iter(l)]*5)))
# [['119', '222', '219', '293'], '4', ['179', '124', '500', '235'], '7']

它不要求输入iterable是可切片的

谢谢。这很快,达到了我想要达到的目的。这很有帮助。谢谢