我想在python中创建一个字典列表。创建列表的常用方法对我有用。那是mylist = [{1:1},{2:2}]
然而,当我尝试使用对range()
函数的理解来创建它时,mylist = [a:a for a in range(10)]
我得到语法错误。
但令我惊讶的是,如果我以相同的方式构建一个集合,它会按预期工作。 myset = {a:a for a in range(10)}
我可以知道为什么会这样吗?我正在使用Python3
答案 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)]