在 Python 中转换给定的字典列表
pythonserver side programmingprogramming
我们有一个列表,其元素是字典。我们需要转换它以获得一个字典,其中所有这些列表元素都以键值对的形式存在。
使用 for 和 update
我们获取一个空字典,并通过从列表中读取元素向其中添加元素。元素的添加是使用 update 函数完成的。
示例
listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}] # 打印给定的数组 print("Given array:\n",listA) print("Type of Object:\n",type(listA)) res = {} for x in listA: res.update(x) # 结果 print("Flattened object:\n ", res) print("Type of flattened Object:\n",type(res))
输出
运行上述代码得到以下结果 −
('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}]) ('Type of Object:\n', ) ('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11}) ('Type of flattened Object:\n', )
使用 reduce
我们还可以使用reduce函数和update函数从列表中读取元素并将其添加到空字典中。
示例
from functools import reduce listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}] # 打印给定数组 print("Given array:\n",listA) print("Type of Object:\n",type(listA)) # 使用reduce和update res = reduce(lambda d, src: d.update(src) or d, listA, {}) # 结果 print("Flattened object:\n ", res) print("Type of flattened Object:\n",type(res))
输出
运行上述代码得到以下结果 −
('Given array:\n', [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}]) ('Type of Object:\n', ) ('Flattened object:\n ', {'Wed': 3, 'Mon': 2, 'Tue': 11}) ('Type of flattened Object:\n', )
使用 ChainMap
ChainMap 函数将从列表读取每个元素并创建一个新的集合对象,而不是字典。
示例
from collections import ChainMap listA = [{'Mon':2}, {'Tue':11}, {'Wed':3}] # 打印给定的数组 print("Given array:\n",listA) print("Type of Object:\n",type(listA)) # Using reduce and update res = ChainMap(*listA) # 结果 print("Flattened object:\n ", res) print("Type of flattened Object:\n",type(res))
输出
运行上述代码得到以下结果 −
Given array: [{'Mon': 2}, {'Tue': 11}, {'Wed': 3}] Type of Object: Flattened object: ChainMap({'Mon': 2}, {'Tue': 11}, {'Wed': 3}) Type of flattened Object: