技术文摘
不使用Pandas快速分组二维列表的方法
2025-01-09 00:44:49 小编
在数据处理过程中,我们常常会遇到需要对二维列表进行分组的情况。通常,大家可能会想到使用Pandas库来轻松实现这一操作。然而,在某些场景下,比如对性能要求极高,或者运行环境不支持Pandas库的情况下,掌握不使用Pandas快速分组二维列表的方法就显得尤为重要。
我们可以利用Python内置的字典数据结构来实现分组功能。假设有一个二维列表,其中每个子列表包含两个元素,第一个元素是分组的依据,第二个元素是需要分组的数据。
实现的核心思路是遍历二维列表,以分组依据作为字典的键,将对应的数据添加到以该键为标识的列表中。具体代码如下:
data = [['A', 1], ['A', 2], ['B', 3], ['B', 4]]
grouped = {}
for item in data:
key = item[0]
value = item[1]
if key not in grouped:
grouped[key] = []
grouped[key].append(value)
print(grouped)
这段代码首先创建了一个空字典grouped。接着,遍历二维列表data,对于每个子列表,提取其第一个元素作为键key,第二个元素作为值value。如果键key不在字典grouped中,就创建一个以该键为标识的空列表;然后将值value添加到对应键的列表中。最终,字典grouped中就实现了按照第一个元素对二维列表的分组。
另外,collections模块中的defaultdict也能简化上述代码。defaultdict会在访问不存在的键时自动创建一个默认值,这样我们就无需手动检查键是否存在。代码示例如下:
from collections import defaultdict
data = [['A', 1], ['A', 2], ['B', 3], ['B', 4]]
grouped = defaultdict(list)
for item in data:
key = item[0]
value = item[1]
grouped[key].append(value)
print(dict(grouped))
通过使用defaultdict,代码更加简洁明了。这种不依赖Pandas库对二维列表进行分组的方法,在资源受限或追求极致性能的场景下,能发挥出很大的优势,帮助开发者高效地完成数据处理任务。
- 怎样删除未使用的 CSS 代码
- 新 Python 工具能够检测 NPM 包的“Manifest 混淆”问题
- RBAC 权限模型的正确设计方法
- Python 中如何通过索引和切片获取字符串片段
- 2023 年前端的十大发展趋势
- 大模型催热两万星黑马项目
- 虚拟现实崛起:重塑未来体验
- Window.onload 性能优化
- HTML+CSS+JavaScript 实现文本转语音的方法
- 17 个免费的后端代码托管网站工具
- 并发编程中的 Lock 与 Condition
- Vue3 借助 hook 封装常见异步请求函数场景 使开发更流畅
- EasyExcel 进阶:填充模版动态生成多个 Sheet 页
- Python 面向对象编程实战助你轻松驾驭
- AI 虚拟点读机:手势识别、OCR 与语音 TTS 的融合