您现在的位置是:网站首页 > 博客日记 >

python列表内元素按长度分组排序

作者:YXN-python 阅读量:118 发布日期:2024-07-26

首先看一下需求

  1. 排序列表:首先对列表进行排序。
  2. 分组:将排序后的列表按每组5个元素进行分组。
  3. 组内排序:在每个组内,将元素按长度进行排序。

返回一个一维列表

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