У меня есть вложенный словарь, и я хочу объединить элементы вложенных словарей:
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