如果我有一个列表
['My', 'Is', 'Name', 'Hello', 'William']
我如何操作它才能创建一个新列表
[['My', 'Is'], ['Name'], ['Hello'], ['William']]
请您参考如下方法:
你可以使用 itertools.groupby :
>>> from itertools import groupby
>>> l = ['My', 'Is', 'Name', 'Hello', 'William']
>>> [list(g) for k, g in groupby(l, key=len)]
[['My', 'Is'], ['Name'], ['Hello'], ['William']]
但是,如果列表尚未按长度排序,您需要先将其排序为 @recnac 在下面的评论中提到:
>>> l2 = ['My', 'Name', 'Hello', 'Is', 'William']
>>> [list(g) for k, g in groupby(sorted(l2, key=len), key=len)]
[['My', 'Is'], ['Name'], ['Hello'], ['William']]
