2015-06-25 6 views
1

Пусть у меня есть словарьУдаление ключа и его появление в других ключа Значение в словаре питона

myDict={0: set([1]),1: set([0, 2]),2: set([1, 3]),3: set([2])} 

и я хочу, чтобы удалить 1 из словаря, что означает ключ «1» и все вхождения 1 в наборах значения другого ключа .FOR например, при удалении 1 будет сделать словарь выглядеть

myDict={0: set([]),2: set([ 3]),3: set([2])} 

Я пытаюсь добиться этого, но не в состоянии сделать это .THANKS заранее

+3

«Я пытаюсь достичь этого, но не в состоянии сделать это». В чем именно проблема? –

+0

Я не смог этого достичь –

ответ

2
del myDict[item] 
for key, value in myDict.items(): 
    if item in value: 
     myDict[key] = value.difference(set([item])) 

Вы можете использовать что-то вроде этого. Сначала удалите из словаря item, затем удалите все его события из значений с использованием разности заданий.

1
val = 1 
if val in myDict: 
    del myDict[val] 
for key in myDict.keys(): 
    if isinstance(myDict[key], set) and val in myDict[key]: 
     myDict[key].remove(val) 
2

Простой не оптимизирован один вкладыш для удаления value:

{k : v - {value} for k, v in myDict.items() if k != value} 

Edit: благодаря @mata для обозначения {value}, я всегда забываю его!