如何将字典分解成python中的字典列表?

Rah*_*151 3 python python-3.x

我正在尝试将词典转换为包含许多词典的列表。例如:

输入:

{
    '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行!有点让人难以理解!

bha*_*atk 6

使用列表理解

  • 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)