Python - 创建字典列表

Python - Creating a list of dictionaries

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

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

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

请问这是为什么?我正在使用 Python3

我想你想要这样的东西:

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

您忘记了 {}

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

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

在这个例子中,{} 表示 dictionary comprehension,不是集合理解。

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

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