Skip to main content
 首页 » 编程设计

python之根据长度将字符串列表拆分为子列表

2025年05月04日11duanxz

如果我有一个列表

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