我正在尝试将列表列表转换为嵌套字典:
我的代码:
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
键重复。
关于python - 将列表列表转换为嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592504/