Python-创建字典列表

Python-创建字典列表,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我想用python创建一个字典列表。通常创建列表的方法对我很有效。那就是mylist=[{1:1},{2:2}] 然而,当我尝试使用对range()函数的理解来创建它时,mylist=[a:a表示范围内(10)]出现语法错误 但令我惊讶的是,如果我以同样的方式构造一个集合,它就会像预期的那样工作myset={a:a表示范围(10)内的a} 我能知道为什么会这样吗?我正在使用Python3我想你想要这样的东西: mylist = [{a:a} for a in range(10)] 您忘记了{和

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

然而,当我尝试使用对
range()
函数的理解来创建它时,
mylist=[a:a表示范围内(10)]
出现语法错误

但令我惊讶的是,如果我以同样的方式构造一个集合,它就会像预期的那样工作
myset={a:a表示范围(10)内的a}


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

我想你想要这样的东西:

mylist = [{a:a} for a in range(10)]
您忘记了
{
}

在第二个示例中,您的
myset
是一个dict,而不是set:

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

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

您的理解列表中缺少词典创建:

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

看起来这就是我们所说的好问题;显然,它需要更多的投票来弥补缺失的研究工作和使用错误的术语。您的Python语句
myset={a:a代表范围(10)}
并没有构造
集,而是构建
dict
。您可以通过键索引访问其中的值,例如,
myset[5]
返回值
5
,而相比之下,索引
set
数据结构会引发
TypeError
,因为“'set'对象不支持索引”。如果你想在你的代码中有一个_集的理解,你必须写,更简单地说,
myset={a代表范围(10)}