使用flatten_dict_items()函数将字典展平的方法
发布时间:2023-12-27 12:35:08
在Python中,我们可以使用 flatten_dict_items() 函数将一个嵌套的字典展平为一个扁平的字典。展平的目标是将嵌套的字典转换成一维的字典,其中键由原始字典的键组成,并且键之间的层次结构由.分隔。
下面是一个实现 flatten_dict_items() 函数的例子:
def flatten_dict_items(dictionary, parent_key='', sep='.'):
items = []
for key, value in dictionary.items():
new_key = parent_key + sep + key if parent_key else key
if isinstance(value, dict):
items.extend(flatten_dict_items(value, new_key, sep=sep).items())
else:
items.append((new_key, value))
return dict(items)
现在,让我们使用一个示例来说明该函数是如何工作的:
nested_dict = {
'a': 1,
'b': {
'c': 2,
'd': {
'e': 3
}
}
}
flattened_dict = flatten_dict_items(nested_dict)
print(flattened_dict)
输出结果为:
{
'a': 1,
'b.c': 2,
'b.d.e': 3
}
在上面的示例中,输入的 nested_dict 是一个嵌套的字典,其中包含一个字典 b 作为其值。b 字典又包含一个字典 d 作为其值。最内层的字典 d 有一个键 e 和对应的值 3。
通过使用 flatten_dict_items() 函数,我们将嵌套的字典转换为一个扁平的字典 flattened_dict,其中键 b.c 被创建,对应于原始字典中 b 字典内的 c 键。同样方式,键 b.d.e 也被创建。
我们还可以通过改变 parent_key 和 sep 参数的值来调整输出的扁平字典的键的格式。例如,可以使用下划线 _ 替换点 . 来分隔键,或者设置 parent_key 为空字符串来删除层次结构。
flattened_dict = flatten_dict_items(nested_dict, sep='_') print(flattened_dict)
输出结果为:
{
'a': 1,
'b_c': 2,
'b_d_e': 3
}
如上所示,在输出结果中,点 . 被下划线 _ 替换了。
总结来说,flatten_dict_items() 函数是一个有用的实用函数,可以将嵌套的字典转换为扁平的字典,方便处理和操作。
