如何生成包含字典的列表?

The*_*ash 0 python

我想生成一个包含字典的列表。在每个字典中,键都是固定的,值是从循环中输入的。

格式如下:

mylist = [{'name': 'test101', 'status': '30'}, {'name': 'test102', 'status': '90'}]
Run Code Online (Sandbox Code Playgroud)

但是,for loop仅遍历列表,这不是我想要的。如何生成词典列表?

mylist = [{'name': 'test101', 'status': '30'}, {'name': 'test102', 'status': '90'}]
Run Code Online (Sandbox Code Playgroud)

car*_*g97 5

您可以使用以下代码来满足您的需求:

result_list = []
for name in names_list:
    status = random()
    obj = {'name': name, 'status': status}
    result_list.append(obj)
Run Code Online (Sandbox Code Playgroud)

在每次迭代中提供的代码中,您将列表中的4个不同的项目推送到了列表中,但是在上面的代码中,我正在创建一个字典(例如您在答案中表示的字典)并将其附加到列表中。

存在创建此列表的其他方法,例如使用dict()内置方法或使用列表理解方法,例如:

result_list = [ {'name': name, 'status': random()} for name in names_list ]
Run Code Online (Sandbox Code Playgroud)

免责声明

  • 您正在使用list关键字作为变量的名称。您必须考虑不建议使用这样的名称声明变量,listPython内置函数也是如此,否则将丢失对它的引用。
  • 您提供的代码实际上是遍历list变量,实际上是一个空列表,因此这将导致相同的列表(因为没有要迭代的项目)。

  • “列表中名称”的一个问题是遍历要追加到的相同列表。 (2认同)
  • “ list”是保留字。我可以建议在您的示例中使用其他内容。 (2认同)
  • 如果您具有单独的`name_list`和`dict_list`,可能会更清楚。 (2认同)