Вы можете решить это с помощью groupby
:
input_dict = {
"2740": {
"NtDuplicateObject": 2,
"NtOpenSection": 1,
"GetSystemWindowsDirectoryW": 23,
"NtQueryValueKey": 32,
"NtClose": 427,
"NtOpenMutant": 2,
"RegCloseKey": 8,
},
"3908": {
"RegCreateKeyExW": 2,
"GetNativeSystemInfo": 1,
"NtOpenSection": 1,
"CoUninitialize": 6,
"RegCloseKey": 27,
"GetSystemInfo": 1,
"CreateToolhelp32Snapshot": 180,
"UnhookWindowsHookEx": 2,
"GetSystemWindowsDirectoryW": 6,
"NtQueryValueKey": 6,
"NtClose": 427,
},
}
from itertools import groupby
from operator import itemgetter
refactored_items = ((k2, v2) for v1 in input_dict.values() for k2, v2 in v1.items())
sorted_refactored_items = sorted(refactored_items, key=itemgetter(0))
res = {k: sum(i for _, i in g) for k, g in groupby(sorted_refactored_items, key=itemgetter(0))}
res:
{'CoUninitialize': 6,
'CreateToolhelp32Snapshot': 180,
'GetNativeSystemInfo': 1,
'GetSystemInfo': 1,
'GetSystemWindowsDirectoryW': 29,
'NtClose': 854,
'NtDuplicateObject': 2,
'NtOpenMutant': 2,
'NtOpenSection': 2,
'NtQueryValueKey': 38,
'RegCloseKey': 35,
'RegCreateKeyExW': 2,
'UnhookWindowsHookEx': 2}