Larry Bates a écrit : > Aahz wrote: >> In article <[EMAIL PROTECTED]>, >> Larry Bates <[EMAIL PROTECTED]> wrote: >>> [EMAIL PROTECTED] wrote: >>>> I create a dictionary like this >>>> myDict = {} >>>> >>>> and I add entry like this: >>>> myDict['a'] = 1 >>>> but how can I empty the whole dictionary? >>> just point myDict to an empty dictionary again >>> >>> myDict={} >> Go back and read Christian's post, then post a followup explaning why his >> solution is better than yours. Your explanation should use id(). > > I believe he (as many new to Python do) are mired in old > programming thinking that variables "contain" things.
Does "he" refer to Christian Tismer ? If so, you may want to use google and correct your beliefs (hint: does 'stackless Python' ring a bell ?). > As I'm sure you kno, variables point to things in Python. (conceptually) names are keys associated with an object in a given namespace. FWIW, be assured that Christians knows this pretty well. > I don't believe that there are lots of other objects > pointing to this dictionary. You just cannot *know* this. This might be true now, this might be false now, and this might change anytime. Assuming anything here is the road to disaster. Don't assume, do the righ thing. > Perhaps the OP can clarify > for us. If there aren't other objects pointing to > this dictionary it would make NO sense to iterate over a > dictionary and delete all the keys/values You don't iterate over anything. Dicts being the central datastructure in Python, you can bet your ass they are optimized to death (or near death). If you have any doubt, then still don't assume : verify (hint: import timeit). And yet even if clearing a dict happens to be a bit slower than instanciating a new one, rebinding a name and mutating an object are still two very different concepts in Python, with very different consequences. The OP explicitely asked for clearing a dict, not for creating a new one. > so I tried to read > between the lines Why ? > and answer what I believe the OP thought he > was asking. What the OP asked was quite clear, and not subject to any interpretation. And the correct answer is obviously not the one you gave. > BTW-I didn't see you posting an answer to what > you thought was the "correct" question, just criticizing me > for taking the time to answer what I perceived the OP was > asking. If you cannot understand the difference between criticism and a friendly correction, nor why you should actually thank the one correcting you when you're wrong, I guess there's no point trying explaining why correcting wrong answers on newsgroups is actually important. -- http://mail.python.org/mailman/listinfo/python-list