Python - 创建字典列表

时间:2015-02-11 06:53:23

标签: python python-3.x dictionary

我想在python中创建一个字典列表。创建列表的常用方法对我有用。那是mylist = [{1:1},{2:2}]

然而,当我尝试使用对range()函数的理解来创建它时,mylist = [a:a for a in range(10)]我得到语法错误。

但令我惊讶的是,如果我以相同的方式构建一个集合,它会按预期工作。 myset = {a:a for a in range(10)}

我可以知道为什么会这样吗?我正在使用Python3

2 个答案:

答案 0 :(得分:6)

我想你想要这样的东西:

mylist = [{a:a} for a in range(10)]

您忘记了{}

在第二个示例中,您的myset是一个字典,而不是一个集合:

In [8]: type(myset)
Out[8]: dict

在此示例中,{}表示dictionary comprehension,而不是设置理解。

答案 1 :(得分:3)

您在列表理解中缺少字典创建:

mylist = [{a:a} for a in range(10)]