我正在尝试将词典转换为包含许多词典的列表。例如:
输入:
{
'first-name':'foo',
'last-name':'bar',
'gender':'unknown',
'age':99
}
Run Code Online (Sandbox Code Playgroud)
输出:
[{'first-name': 'foo'}, {'last-name': 'bar'}, {'gender': 'unknown'}, {'age':99}]
Run Code Online (Sandbox Code Playgroud)
我已经在使用此代码来做到这一点:
def convert(info: dict):
new_list = list
for item in info:
new_parameter = {item:info[item]}
new_list.append(new_parameter)
return new_list
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有内置功能可以做到这一点?还是一段可读性更高的代码?差不多有10行!有点让人难以理解!
使用列表理解
items() 方法用于返回带有所有字典键和值的列表。例如
dict1 = {
'first-name':'foo',
'last-name':'bar',
'gender':'unknown',
'age':99
}
new_list = [{k:v} for k,v in dict1.items() ]
print(new_list)
Run Code Online (Sandbox Code Playgroud)
O / P:
[{'first-name': 'foo'}, {'last-name': 'bar'}, {'gender': 'unknown'}, {'age': 99}]
Run Code Online (Sandbox Code Playgroud)
@josoler建议的另一种解决方案
new_list = list(map(dict, zip(dict1.items())))
Run Code Online (Sandbox Code Playgroud)