根据字符长度拆分子列表中的列表

dig*_*git 0 python

我有一个字符串列表,我喜欢根据列表中单词的字符长度将该列表拆分为不同的"子列表",例如:

List = [a, bb, aa, ccc, dddd]

Sublist1 = [a]
Sublist2= [bb, aa]
Sublist3= [ccc]
Sublist2= [dddd]
Run Code Online (Sandbox Code Playgroud)

我怎么能在python中实现这一点?

谢谢

Zde*_*vic 7

使用itertools.groupby:

 values = ['a', 'bb', 'aa', 'ccc', 'dddd', 'eee']
 from itertools import groupby
 output = [list(group) for key,group in groupby(sorted(values, key=len), key=len)]
Run Code Online (Sandbox Code Playgroud)

结果是:

[['a'], ['bb', 'aa'], ['ccc', 'eee'], ['dddd']]
Run Code Online (Sandbox Code Playgroud)

如果您的列表已经按字符串长度排序,并且您只需要进行分组,那么您可以将代码简化为:

 output = [list(group) for key,group in groupby(values, key=len)]
Run Code Online (Sandbox Code Playgroud)