将字典列表转换为字典python3的字典

时间:2019-05-20 12:18:01

标签: python python-3.x list dictionary for-loop

我有一个像这样的字典列表

a = [{'name': 'analyst21', 'id': 1, 'data': 'the process data3'}, {'name': 'analyst2', 'id': 2, 'data': 'process data2'}, {'name': 'analyst3', 'id': 3, 'data': 'process data3'}]

我想将其转换为字典

必填输出:

a = {{'name': 'analyst21', 'id': 1, 'data': 'the process data3'}, {'name': 'analyst2', 'id': 2, 'data': 'process data2'}, {'name': 'analyst3', 'id': 3, 'data': 'process data3'}}

我知道dict需要键值对。还有其他方法使之成为可能。是我的问题是错误的。得到了一些反对票。我只希望列表数据包含在此{}中。我将这些结果用于进一步处理。

1 个答案:

答案 0 :(得分:3)

Python dict is key-value structure。您所需的输出不是字典-字典必须同时具有键和相应的值(或为空)。如果要将字典列表转换为字典,请选择某种可哈希键(请注意,字典本身不可哈希,因此不能将普通字典用作键!)并将其用作字典键。这是您如何执行此操作的示例:

a = [{'name': 'analyst21', 'id': 1, 'data': 'the process data3'},
     {'name': 'analyst2', 'id': 2, 'data': 'process data2'},
     {'name': 'analyst3', 'id': 3, 'data': 'process data3'}]

b = {d['name']: d for d in a}
b

将返回一个字典:

{'analyst2': {'data': 'process data2', 'id': 2, 'name': 'analyst2'},
 'analyst21': {'data': 'the process data3', 'id': 1, 'name': 'analyst21'},
 'analyst3': {'data': 'process data3', 'id': 3, 'name': 'analyst3'}}