python - 基于类别对列表进行分组的算法
问题描述
我有两个这样的列表:
list1 = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6']
list2 = ['sunday', 'sunday', 'monday', 'monday', 'tuesday', 'tuesday']
现在,我想根据list1
类别对项目进行分组list2
并从中制作字典,因此输出应如下所示:-
grouped = {'sunday': ['item1', 'item2'],
'monday': ['item3', 'item4'],
'tuesday': ['item5', 'item6']}
最快、最有效的方法是什么?
解决方案
from collections import defaultdict
list1 = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6']
list2 = ['sunday', 'sunday', 'monday', 'monday', 'tuesday', 'tuesday']
grouped = defaultdict(list)
for v, k in zip(list1, list2):
grouped[k].append(v)
grouped = dict(grouped) # So it isn't a defaultdict anymore
即使list2
未排序,这也有效。
推荐阅读
- python - Python - Selenium 遍历数组
- intellij-idea - 如何在 IntelliJ 中自动完成/导入 Flutter 类?
- wordpress - Wordpress // 自定义帖子类型和分类 URL
- vba - 为什么我的 Excel 不能横向导出为 PDF?
- javascript - 原型继承的属性在 vue.js 中没有反应性?
- javascript - 如何在 JavaScript 中将日期增加一个月?接收未捕获的类型错误
- java - 对多个 Fragment 使用 Asynctask
- python - Paho MQTT Python 客户端:没有抛出异常,只是停止
- python - 使用python生成配置文件
- python - 重复随机抽样(亚群)