我有以下列表:
l = [('Alice',12),('Bob',10),('Celine',11)]
我想得到以下dict
(正如下面评论中正确指出的那样,这不是一个词典。实际上,我只想要一个词典列表):
[
{'name':'Alice','age':12},
{'name':'Bob','age':10},
{'name':'Celine','age':11}
]
我有没有办法dict comprehension
来实现这个目标?
答案 0 :(得分:4)
您可以通过这种方式创建词典
:class_name
你的例子有一个集/字典?字典这是不可能的,因为字典无法进行哈希处理,因此可以在集合中使用或作为字典键使用。
答案 1 :(得分:3)
这将是一个字典列表,因为每个条目都必须有一个键才能使整个字体成为字典。
你可以在列表理解中使用字典制作一个字典:
[{'name': name, 'age': age} for name, age in l]
另请注意,虽然词典本身是无序的,但这个词典列表将保留列表l
的顺序。
答案 2 :(得分:2)
你可以做一个功能
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中测试