由于您希望对输出进行排序,所以可以根据第一个元素对原始列表进行排序>>> first = lambda x: x[0]

>>> one_sorted = sorted(one, key=first)

然后您可以根据第一个元素使用^{}对元素进行分组,如下所示

^{pr2}$

因为您想按升序给组分配数字,所以可以用^{}这样来包装它enumerate(groupby(one_sorted, first), 1)

然后您可以unpack在for循环中enumerate的结果,如下所示for index, (item, group) in enumerate(groupby(one_sorted, first), 1)

现在您只需构造结果列表。您可以使用list comprehension来执行此操作,如下所示>>> from itertools import groupby

>>> [(index, item, [j[1] for j in group])

... for index, (item, group) in enumerate(groupby(one_sorted, first), 1)]

[(1, 2, ['c']), (2, 3, ['b', 'd']), (3, 4, ['a']), (4, 5, ['e']), (5, 6, ['f'])]

[j[1] for j in group]实际上迭代分组的项并获取第二项,即实际的字符串。在

或者,可以将元素分组到字典中,如下所示>>> groups = {}

>>> for number, string in one:

... groups.setdefault(number, []).append(string)

...

...

>>> groups

{2: ['c'], 3: ['b', 'd'], 4: ['a'], 5: ['e'], 6: ['f']}

然后返回应用排序字典上的enumerate,如下所示>>> [(index, number, groups[number])

... for index, number in enumerate(sorted(groups), 1)]

[(1, 2, ['c']), (2, 3, ['b', 'd']), (3, 4, ['a']), (4, 5, ['e']), (5, 6, ['f'])]

python对分组进行排序_如何按排序顺序将列表中的项目分组?相关推荐

  1. java list按字母排序_如何按字母顺序对列表进行排序?

    使用Collections.sort解决方案 如果您被迫使用该List,或者您的程序具有类似的结构 创建列表 添加一些国家名称 排序他们一次 永远不要再改变那个清单 然后Thilos的回答将是最好的方 ...

  2. Python 列表查找,如何在列表中查找项目或者元素索引【翻译】

    Python 列表查找,如何在列表中查找项目或者元素索引 在本文中,你将学习如何在Python中查找列表中包含元素的索引. 有几种方法可以实现这一点,在本文中,你将学习三种不同的方式用于查找列表元素的 ...

  3. 希尔排序python 简书_数据结构_排序_直接插入+希尔排序

    数据结构_排序_直接插入排序+希尔排序 其实主要是为了讲述希尔排序,不过插入排序是希尔排序的基础,因此先来讲直接插入排序. 一.直接插入排序 1.原理 下标 0 1 2 3 4 5 6 7 8 -- ...

  4. python学生成绩排序_学生成绩排序基础算法笔记

    刚接触程序语言的时候,经常会用到一些排序的问题,按照算法运行效率和理解上面来看的话,有的时候我们可以记录一些比较便于理解的: 1:如果一个班有5个同学考试成绩如下,需要我们通过程序的方式来对成绩从高到 ...

  5. python列表按照字母排序_Python:按字母顺序对列表进行排序/分组

    我觉得这已经被问到了,但是这些问题的答案对我的代码没有效果. 我试图根据第一个列表[2]按字母顺序对列表进行排序,然后在按列表[3]和列表[4]排序的匹配条目内对列表进行排序,依此类推.真实的数据更大 ...

  6. shell按照时间排序_【经典排序】希尔排序

    希尔排序 简介: 希尔排序,英文Shell's sort,是一位叫D.L.Shell的老哥在1959就提出来的算法,是<插入排序>的一种又称"缩小增量排序"(Dimin ...

  7. python降序输出前十个单词和词频_python-计算列表中单词的频率并按频率排序

    python-计算列表中单词的频率并按频率排序 我正在使用Python 3.3 我需要创建两个列表,一个用于唯一词,另一个用于词频. 我必须根据频率列表对唯一单词列表进行排序,以便频率最高的单词在列表 ...

  8. java 桶排序_[图解] 桶排序

    桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序.选择排序.插入排序.归并排序.快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序. 1. 桶排序的 ...

  9. java 鸡尾酒排序_算法渣-排序-冒泡

    没有一身好内功,招式再多都是空;算法绝对是防身必备,面试时更是不可或缺:跟着算法渣一起从零学算法 定义 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 这个算法的名字由来 ...

最新文章

  1. python获取数据库用户名密码_在数据库中存储用户和密码
  2. 推荐8个相见恨晚的高效工具,再也不加班!
  3. 删除中间结点(直接用来当前节点操作)
  4. 关于机器学习中的一些常用方法的补充
  5. 一个页面区分管理者和普通用户如何设计_如何从「百度知道」中删除 bai du zhi dao?...
  6. 网易技术干货 | 云信Web SDK测试实践
  7. Java如何支持函数式编程?
  8. 三十而已,工程师如何做好职业成长?
  9. MyBatis-Plus入门篇——CRUD
  10. TM数据单窗算法和单通道算法反演地表温度(IDL实现)
  11. Docker和CI/CD实战
  12. 用 strcoll 实现中文按拼音排序
  13. dlib重新训练dlib_face_recognition_resnet_model_v1.dat
  14. MHA-结合MySQL半同步复制高可用集群(Centos7)
  15. 命令点亮硬盘灯_【硬盘无法识别怎么办?】
  16. mybatis的switch标签
  17. 为将来而记下的过去——扭曲的爱,病态的教育
  18. ubuntu cannot start pycharm, Required tools are missing: realpath***
  19. 攻防世界illusion暴力破解
  20. Cadence学习四:怎么添加滴泪,并且在密集区域添加滴泪

热门文章

  1. apache cxf_Wildfly,Apache CXF和@SchemaValidation
  2. meetup_使用RxNetty访问Meetup的流API
  3. Java 13:文本块
  4. 多个公证员提高网络吞吐量
  5. moxy json介绍_MOXy的对象图和动态JAXB
  6. Java 9中什么是私有的?
  7. Java增强枚举的用例
  8. 如何将云持久存储添加到JBoss Cool Store
  9. 一个JAXB Nuance:字符串与枚举(受限制的XSD字符串)
  10. 我喜欢构建器模式的三个原因