[Python-ideas] set.add() return value

Steven D'Aprano steve at pearwood.info
Sat Feb 14 02:24:41 CET 2009


Greg Ewing wrote:
> Chris Rebert wrote:
> 
>> As The Zen says: "Special cases aren't special enough to break the 
>> rules."
> 
> What might be more acceptable is to add a new method
> for this, with a name suggesting that it's more than
> just a plain mutating operation, e.g.
> 
>   was_it_there = myset.test_and_add(42)
> 

What's the use-case for this? What's wrong with doing this?

if 42 in myset:
     myset.add(42)

Short, sweet, and doesn't require any new methods.

The OP's original use-case was based on his misapprehension that key 
lookup in a set was O(N log N). I don't see any useful advantage to a 
new method, let alone a change in semantics to the existing method.



-- 
Steven



More information about the Python-ideas mailing list