Как объединить вложенные элементы в словаре?Python

Программы на Python
Anonymous
Как объединить вложенные элементы в словаре?

Сообщение Anonymous »

У меня есть вложенный словарь, и я хочу объединить элементы вложенных словарей:
import random
nested_dict = {
k: {
'val0': random.sample(range(100), 2),
'val1': random.sample(range(100), 2),
}
for k in 'abcd'
}

Я могу сделать это с помощью двойного цикла следующим образом:
from collections import defaultdict

dp_dict= defaultdict(list)

for v in nested_dict.values():
for k, v_nested in v.items():
dp_dict[k].append(v_nested)
val0 = dp_dict['val0']
val1 = dp_dict['val1']

есть ли более Pythonic/элегантный способ сделать это?
Примечание
одно из решений — использовать Pandas, однако это решение весьма неэффективно (на X300 медленнее)
import pandas as pd
val0, val1 = pd.DataFrame(nested_dict).loc[['val0', 'val1']].values


Подробнее здесь: https://stackoverflow.com/questions/790 ... dictionary

Вернуться в «Python»