python列表内元素按长度分组排序
作者:YXN-python 阅读量:118 发布日期:2024-07-26
首先看一下需求
- 排序列表:首先对列表进行排序。
- 分组:将排序后的列表按每组5个元素进行分组。
- 组内排序:在每个组内,将元素按长度进行排序。
返回一个一维列表
lst = ['a', 'bbbbbb', 'j', 'gdrgd', 'gfgfg', 'sfsf', 'sfeg', 'sg', 'gfgfg', 'gfgf', 'fg', 'gfgf']
# 1. 对列表进行排序
sorted_lst = sorted(lst)
# 2. 按每组5个元素进行分组,组内按元素长度进行排序
# 3. 由于列表长度可能不是5的倍数,最后一组可能不足5个元素
# 返回一维列表
grouped_sorted_lst = []
[grouped_sorted_lst.extend(sorted(sorted_lst[i:i+5], key=len)) for i in range(0, len(sorted_lst), 5)]
# 输出一维结果
print(grouped_sorted_lst)
# 返回二维列表
groups = [sorted_lst[i:i+5] for i in range(0, len(sorted_lst), 5)]
sorted_groups = [sorted(group, key=len) for group in groups]
# 输出二维结果
for group in sorted_groups:
print(group)
YXN-python
2024-07-26