Python - 将列表转换为字典

Python - convert list to dict

我有以下列表:

l = [('Alice',12),('Bob',10),('Celine',11)]

我想要得到以下内容 dict(正如下面评论中正确指出的那样,这不是字典。实际上,我只想要一个字典列表):

[
    {'name':'Alice','age':12},
    {'name':'Bob','age':10},
    {'name':'Celine','age':11}
]

有什么方法可以使用 dict comprehension 来实现这个目标吗?

您可以通过这种方式创建词典列表

d = [{'name': x[0], 'age': x[1]} for x in l]

你的例子有一个set/dictionary?字典 这实际上是不可能的,因为字典不能被散列,因此可以在集合中使用或用作字典键。

这将是一个字典列表,因为每个条目都必须有一个键才能使整个事物成为字典。

您可以像这样在列表理解中使用字典来创建一个:

[{'name': name, 'age': age} for name, age in l]

另请注意,虽然字典本身是无序的,但此字典列表将保留列表的顺序 l

你可以创建一个函数来做到这一点

def list2dict(list_):
    changed=[{'name':i[0],'age':i[1]} for i in list_]
    return changed

然后打电话

l=[('Alice',12) , ('Bob',10) , ('Celine',11)]
d=list2dict(l)

在 python 3.4.4

中测试