从嵌套键中提取字典值,保留主键,然后变成列表
Extract dictionary values from nested keys, leaving main key, then turn into list
a = {
1: {'abc': 50, 'def': 33, 'xyz': 40},
2: {'abc': 30, 'def': 22, 'xyz': 45},
3: {'abc': 15, 'def': 11, 'xyz': 50}
}
我想遍历这个嵌套字典,删除子键(或提取子键值),但保留主键。第二步是将字典变成列表列表:
b = [
[1, 50, 33, 40],
[2, 30, 22, 45],
[3, 15, 11, 50]
]
我浏览了这里讨论提取键和值的无数帖子,但找不到一个足够接近的例子来满足我的需要(这仍然是新的):到目前为止,我有这个:
for key in a.keys():
if type(a[key]) == dict:
a[key] = a[key].popitem()[1]
这给出了这个 - 每个键中第三个子键的值:这是一个开始,但不完整或者我想要的
{1: 40, 2: 45, 3: 50}
在 a.items()
, use dict.values()
上使用列表理解来获取值,然后您可以使用解包 (*
) 来获取所需的列表。
>>> [[k, *v.values()] for k,v in a.items()]
[[1, 50, 33, 40], [2, 30, 22, 45], [3, 15, 11, 50]]
这个解决方案可能不是最优雅的解决方案,但它确实满足您的需求:
a = {
1: {'abc': 50, 'def': 33, 'xyz': 40},
2: {'abc': 30, 'def': 22, 'xyz': 45},
3: {'abc': 15, 'def': 11, 'xyz': 50}
}
b = []
for key1, dict2 in a.items():
c = [key1]
c.extend(dict2.values())
b.append(c)
print(b)
a = {
1: {'abc': 50, 'def': 33, 'xyz': 40},
2: {'abc': 30, 'def': 22, 'xyz': 45},
3: {'abc': 15, 'def': 11, 'xyz': 50}
}
我想遍历这个嵌套字典,删除子键(或提取子键值),但保留主键。第二步是将字典变成列表列表:
b = [
[1, 50, 33, 40],
[2, 30, 22, 45],
[3, 15, 11, 50]
]
我浏览了这里讨论提取键和值的无数帖子,但找不到一个足够接近的例子来满足我的需要(这仍然是新的):到目前为止,我有这个:
for key in a.keys():
if type(a[key]) == dict:
a[key] = a[key].popitem()[1]
这给出了这个 - 每个键中第三个子键的值:这是一个开始,但不完整或者我想要的
{1: 40, 2: 45, 3: 50}
在 a.items()
, use dict.values()
上使用列表理解来获取值,然后您可以使用解包 (*
) 来获取所需的列表。
>>> [[k, *v.values()] for k,v in a.items()]
[[1, 50, 33, 40], [2, 30, 22, 45], [3, 15, 11, 50]]
这个解决方案可能不是最优雅的解决方案,但它确实满足您的需求:
a = {
1: {'abc': 50, 'def': 33, 'xyz': 40},
2: {'abc': 30, 'def': 22, 'xyz': 45},
3: {'abc': 15, 'def': 11, 'xyz': 50}
}
b = []
for key1, dict2 in a.items():
c = [key1]
c.extend(dict2.values())
b.append(c)
print(b)