> Raymond Hettinger wrote: > > Use copy.copy() for generic copying -- it works across a wide range of > > objects. Alternatively, use the constructor as generic way to make > > duplicates: > > > > dup = set(s) > > dup = list(l) > > dup = dict(d) > > dup = tuple(t) # note, the duplicate is original object here :-)
[Nicolas Fleury] > I know all this, but why then is there a copy method for sets and > dictionaries? What justification is valid for sets and dictionaries > that doesn't apply to lists? Several thoughts: * maybe it's a Dutch thing; * dict.copy() pre-dated dict(d) and (IIRC) copy.copy(); * sets and dicts don't have the [:] syntax available to them; * the __copy__() method is new way to make things copy.copyable without fattening the apparent API or rewriting the copy module; * because generic copying isn't important enough to add more ways to do the same thing; * and because Guido believes beginners tend to copy too much (that is one reason why copy.copy is not a builtin) and that the language should encourage correct behavior. Raymond _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com