May-25-2024, 07:40 AM
Dos this give the wantent result?
from pprint import pprint dict1 = {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX'], ['IS_COBOL', '1']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} dict2 = {'SAG01112_SSAP_HA_LPM': [['OS_TYPE', 'AIX'], ['IP', '172.17.10.112'], ['IP', '10.111.160.119'], ['IP', '10.111.160.68'], ['IP', '10.111.160.66'], ['IP', '10.95.0.112'], ['IP', '10.111.162.119']], 'SAP': [], 'C11_RG': [], 'W11_RG': []} # Convert lists to sets of tuples for comparison and removal of duplicates flattened_dict1 = {k: set(map(tuple, v)) for k, v in dict1.items()} flattened_dict2 = {k: set(map(tuple, v)) for k, v in dict2.items()} for key in flattened_dict1: if key in flattened_dict2: common_elements = flattened_dict1[key] & flattened_dict2[key] flattened_dict2[key] -= common_elements # Convert sets of tuples back to lists of lists dict2 = {k: [list(item) for item in v] for k, v in flattened_dict2.items()} pprint(dict2)
Output:{'C11_RG': [],
'SAG01112_SSAP_HA_LPM': [['IP', '10.111.162.119'],
['IP', '10.111.160.66'],
['IP', '172.17.10.112'],
['IP', '10.95.0.112'],
['IP', '10.111.160.119'],
['IP', '10.111.160.68']],
'SAP': [],
'W11_RG': []}