我有 4 个列表,其中的元素是一对一映射的。有数以万计的元素。我想创建一个字典,为每个元素提供 4 个属性,然后我想将这些字典放入一个列表中。 (我的最终目标是创建一个 pandas DataFrame 并将其保存为 HDF5 文件。)
是否有一种简单的节省内存的方法来执行此操作,也许使用 zip() 和 dict() 而不是 for 循环?
作为 Python 的工作示例,请考虑:
list1 = ['obj1','obj2','obj3']
list2 = ['cat','dog','tree']
list3 = [7,8,9]
list4 = ['red','green','blue']
所以我的想法是,最后我想要一个字典列表,看起来像
[{'obj':'obj1','type':'cat','num':7,'color':'red'},
{'obj':'obj2','type':'dog','num':8,'color':'green'},
{'obj':'obj3','type':'tree','num':9,'color':'blue'}]
最佳答案
因为你标记了 pandas
,通过使用 to_dict
pd.DataFrame({'obj':list1,'type':list2,'num':list3,'color':list4}).to_dict('r')
Out[1204]:
[{'color': 'red', 'num': 7, 'obj': 'obj1', 'type': 'cat'},
{'color': 'green', 'num': 8, 'obj': 'obj2', 'type': 'dog'},
{'color': 'blue', 'num': 9, 'obj': 'obj3', 'type': 'tree'}]
关于python - 将 4 个一对一映射列表转换为字典列表(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47946967/