删除密钥及其出现在python字典中的其他密钥的值中

时间:2015-06-25 07:53:04

标签: python dictionary

假设我有一本字典

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

我希望从字典中删除1,这意味着键“1”,并且其他键的值集合中每次出现1次。例如,删除1会使字典看起来像

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

我正在努力实现这一目标但却无法做到。谢谢提前

3 个答案:

答案 0 :(得分:2)

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

你可以使用这样的东西。首先从字典中删除item,然后使用set difference从值中删除它的所有出现。

答案 1 :(得分:2)

要删除value的简单未优化单行注册:

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

编辑:感谢@mata表示符号{value},我总是忘记它!

答案 2 :(得分: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)