是否有一个python set delete方法,如果你要删除的值不在集合中,则返回一个值?

时间:2015-06-13 12:44:07

标签: python

是否有删除方法,如果没有要删除的元素与您要删除的参数匹配,则删除要返回参数的集合的元素?

所以它就像set.discard(a,b),其中a是你要删除的参数,b是未找到a时返回的参数。

2 个答案:

答案 0 :(得分:1)

这样的东西?

def _discard(s, key, ret):
    try:
        s.remove(key)
    except KeyError:
        return ret
    return key    

s = set([1,2,3])
ret = "not found"

key = 4

print _discard(s, key, ret), s

key = 3

print _discard(s, key, ret), s

答案 1 :(得分:0)

不是内置的。 除去(ELEM)

  

删除(ELEM)

     

从集合中删除元素elem。如果elem未包含在集合中,则引发KeyError。

尝试在自己的函数中捕获异常吗? 捕获异常时返回元素b。