python - 对列表的元素进行分组
问题描述
我有一个看起来像这样的列表:
old_list = [['A', 1, 2], ['A', 5, 3], ['A', 3, 2], ['B', 1, 1], ['B', 2, 5], ['C', 3 , 1], ['C', 9, 2]]
我希望我的函数对其进行迭代,因此输出是一个类似于下面的列表,每个分组项有一个元素(这里是字符串)
new_list = [[1, 2, 5, 3, 3, 2], [1, 1, 2, 5], [3, 1, 9, 2]]
解决方案
通过itertools groupby
:
from itertools import groupby
result = [[j for i in k for j in i[1:]]
for _, k in groupby(old_list, key=lambda x: x[0])]
OUTPUT
:
[[1, 2, 5, 3, 3, 2], [1, 1, 2, 5], [3, 1, 9, 2]]
NOTE
:如果列表未排序,那么您可能需要根据第一个元素对第一个进行排序。
old_list = sorted(old_list, key= lambda x: x[0])
推荐阅读
- node.js - 节点针同步等待承诺不起作用
- r - 如何用R中以前的非零数据行填充缺失的数据行?
- flutter - 如何在表日历的上下文中显示月份
- java - 找不到编译器镜像中的对象 java.lang.Object(在 Jupyter NB 上运行 Scala)
- python - python3 - 访问 XMLHttpRequest,请求的资源上不存在“Access-Control-Allow-Origin”标头
- python - 用python更改html页面的背景颜色
- javascript - 使用 Apollo Client 在 ReactJs 中的组件之间发送数据
- c# - Asp.Net Web Api - 从客户端检测到潜在危险的 Request.Form 值
- c# - 计算n+nn+nnn的分层值
- python - Sqlite3 - sqlalchemy - 烧瓶 - InterfaceError:错误绑定参数 1 - 可能不支持的类型