У меня есть словарь:
new_members = {'member1': ['PCP2'],
'member10': ['PCP2'],
'member13': ['PCP5'],
'member2': ['PCP1', 'PCP2'],
'member5': ['PCP5'],
'member6': ['PCP1', 'PCP5'],
'member7': ['PCP2', 'PCP4'],
'member8': ['PCP5'],
'member9': ['PCP1', 'PCP5']}
и 2 набора:
pcps_in_negative = {'PCP4'}
pcps_at_zero = {'PCP6'}
Если элемент из любого набора присутствует в любом из значений списка словаря, удалите его. Поэтому в этом случае «PCP4» следует удалить из списка «member7».
Я пробовал
for k, v in new_members.items():
for i in v:
if i in pcps_at_zero or i in pcps_in_negative:
v.remove(i)
Но new_members
предметы остаются без изменений. "member7" должен просто иметь ['PCP2']. Это простой пример. Наборы pcps_in_negative
и pcp_at_zero
могут иметь больше предметов в другом случае.