我有一个字符串列表,我喜欢根据列表中单词的字符长度将该列表拆分为不同的"子列表",例如:
List = [a, bb, aa, ccc, dddd]
Sublist1 = [a]
Sublist2= [bb, aa]
Sublist3= [ccc]
Sublist2= [dddd]
Run Code Online (Sandbox Code Playgroud)
我怎么能在python中实现这一点?
谢谢
使用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)
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |