我想生成一个包含字典的列表。在每个字典中,键都是固定的,值是从循环中输入的。
格式如下:
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)
您可以使用以下代码来满足您的需求:
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变量,实际上是一个空列表,因此这将导致相同的列表(因为没有要迭代的项目)。