python - 如何从两个列表创建字典对象列表?

标签 python

我有两个列表:

list_of_ids = [46571928, 675829237, 9674826585, 172395729]
list_of_positions = [1, 4, 9, 13]

我想从这两个列表中创建以下字典列表:

list_of_dict = [{'id': 46571928, 'position': 1}, {'id': 675829237, 'position': 4}, {'id': 9674826585, 'position': 9}, {'id': 172395729, 'position': 13}]

我试过创建两个字典,然后将它们合并在一起,但它只映射了第一个值。

ids = ['id']
position = ['position']

dict_id = dict(zip(ids, list_of_id))
dict_position = dict(zip(position, list_of_positions))

def merge(dict1,dict2):
    res = {**dict1, **dict2}
    return res

list_of_dict = merge(dict_id,dict_position)

所以输出是:

[{'id':46571928, 'position': 1}]

我尝试了一些其他的东西,但它和我得到的一样接近。有人可以帮我解决这个问题吗?谢谢!

最佳答案

[{'id':ID,'position':POS} for ID,POS in zip(list_of_ids,list_of_positions)]

输出:

[{'position': 1, 'id': 46571928}, {'position': 4, 'id': 675829237}, {'position': 9, 'id': 9674826585}, {'position': 13, 'id': 172395729}]

关于python - 如何从两个列表创建字典对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797014/

相关文章:

python - Pandas 操纵多个数据帧

python - Python中的类工厂

python - Numpy ndarray 在 bool 条件之后进行广播

python - 扩展 threading.Timer 以从函数返回值给出 TypeError

python - 为什么我收到错误 Error : module ‘string’ has no attribute ‘lower’ when I am using Pandas?

Python 传统知识。使用 Tab 键时设置小部件焦点

python - 获取列表中重复次数最多的名称,或者如果有平局,则按字母顺序排列第一个

python - 属性错误 : 'str' object has no attribute 'isoformat'

python - 在 Python 中使用 OpenCV 将打包的 BGRA 图像缓冲区转换为 RGB 时出现问题

python - 如何在 Python 类描述符对象上调用方法?