Skip to main content
 首页 » 编程设计

python之将列表列表转换为嵌套字典

2025年05月04日16qq78292959

我正在尝试将列表列表转换为嵌套字典:

我的代码:

csv_data={} 
    for key, value in csv_files.iteritems(): 
        if key in desired_keys: 
            csv_data[key]=[] 
 
            for element in value: 
                csv_data[key].append(element[1:]) 

此代码为我提供了以下内容:

{   'Network': [ 
        ['Total KB/sec', 'Sent KB/sec', 'Received KB/sec'], 
        ['0.3', '0.1', '0.3'] 
    ], 
    'CPU': [ 
        ['Processor Time', 'User Time', 'Privileged Time'], 
        ['13.8', '6.7', '7.2'] 
    ] 
} 

所以在这种情况下,每个“值”都是一个包含两个列表的列表,包含一个“标题”列表和一个“数值”列表

但是我想生成如下格式:

{   'Network': { 
        'Total KB/sec':0.3, 
        'Sent KB/sec':0.1, 
        'Received KB/sec':0.3 
    }, 
    'CPU': { 
        'Processor Time':'13.8', 
        'User Time': '6.7', 
        'Privileged Time': '7.2' 
    } 
} 

我应该如何更改我的代码以生成此输出?

请您参考如下方法:

假设我演示了在您的一个 key Network 上使用 zip():

>>> network = [ 
    ['Total KB/sec', 'Sent KB/sec', 'Received KB/sec'], 
    ['0.3', '0.1', '0.3'] 
] 

zip() 这两个列表将产生一组元组,只需对其调用 dict() 即可将其转换为字典。换句话说,

>>> dict(zip(network[0], network[1])) 
{'Received KB/sec': '0.3', 'Sent KB/sec': '0.1', 'Total KB/sec': '0.3'} 

为您的 CPU 键重复。