Python-创建字典列表
我想用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)] 您忘记了{和
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)}
。