a = {
1: {'abc': 50, 'def': 33, 'xyz': 40},
2: {'abc': 30, 'def': 22, 'xyz': 45},
3: {'abc': 15, 'def': 11, 'xyz': 50}
}
Run Code Online (Sandbox Code Playgroud)
我想迭代这个嵌套字典,删除子键(或提取子键值),但保留主键。第二步是将字典变成列表的列表:
b = [
[1, 50, 33, 40],
[2, 30, 22, 45],
[3, 15, 11, 50]
]
Run Code Online (Sandbox Code Playgroud)
我浏览了这里无数关于提取键和值的帖子,但找不到足够接近的示例来满足我的需要(这仍然是新的):到目前为止,我有这个:
for key in a.keys():
if type(a[key]) == dict:
a[key] = a[key].popitem()[1]
Run Code Online (Sandbox Code Playgroud)
这给出了这个 - 每个键中第三个子键的值:这是一个开始,但不完整或我想要的
{1: 40, 2: 45, 3: 50}
Run Code Online (Sandbox Code Playgroud)
使用列表推导式a.items()
,使用dict.values()
来获取值,然后可以使用解包 ( *
) 来获取所需的列表。
>>> [[k, *v.values()] for k,v in a.items()]
[[1, 50, 33, 40], [2, 30, 22, 45], [3, 15, 11, 50]]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
127 次 |
最近记录: |