📅  最后修改于: 2023-12-03 15:33:56.979000             🧑  作者: Mango
在许多数据处理任务中,我们需要将类似项目分组到字典值列表中。在Python中,我们可以使用defaultdict
来轻松地完成这个任务。defaultdict
是Python标准库中的一个容器,它跟普通的dict
类非常类似,但是有一个区别:当试图访问不存在的键时,defaultdict
会自动创建一个default值作为默认值。
在本教程中,我们将使用defaultdict
来将类似项目分组到字典值列表中。
为了演示如何使用defaultdict
来将类似项目分组到字典值列表中,我们将使用以下示例数据:
data = [
{'name': 'Alice', 'age': 20},
{'name': 'Bob', 'age': 22},
{'name': 'Charlie', 'age': 20},
{'name': 'Dave', 'age': 22},
{'name': 'Emily', 'age': 21},
]
首先,我们需要导入collections模块中的defaultdict
:
from collections import defaultdict
然后,我们可以创建一个defaultdict
并使用一个lambda函数作为其default_factory来将类似项目分组到字典值列表中。
grouped_data = defaultdict(list)
for item in data:
grouped_data[item['age']].append(item)
在上面的代码中,我们创建了一个defaultdict
,并在其default_factory中使用了一个空列表list
,以确保所有未知的键都将返回一个空列表。
然后,我们遍历数据列表,并将每个数据项添加到其年龄的列表中。这将导致类似项目被分组到字典值列表中。
最后,我们可以打印出grouped_data来验证结果是否正确。
print(dict(grouped_data))
这将输出以下内容:
{20: [{'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 20}],
22: [{'name': 'Bob', 'age': 22}, {'name': 'Dave', 'age': 22}],
21: [{'name': 'Emily', 'age': 21}]}
from collections import defaultdict
data = [
{'name': 'Alice', 'age': 20},
{'name': 'Bob', 'age': 22},
{'name': 'Charlie', 'age': 20},
{'name': 'Dave', 'age': 22},
{'name': 'Emily', 'age': 21},
]
grouped_data = defaultdict(list)
for item in data:
grouped_data[item['age']].append(item)
print(dict(grouped_data))
在Python中,我们可以使用defaultdict
来将类似项目分组到字典值列表中。这个方法非常简单有效,可以极大地简化数据处理任务。