"B. M. Whealton" <bwheal...@futurewavedesigns.com> writes: > I did get a bit confused in reading about the concept of sets in > python and why you would use them instead of a dictionary for example.
Use a set when something is naturally modelled as a set... it's a collection of unordered objects that you can test for membership, form unions, intersections etc. reasonably efficiently. Use a dictionary when you want something that's naturally modelled as a dictionary - i.e. you have a unordered collection of keys each of which has a value associated with it and you want reasonably efficient lookup of those values from the keys. Certainly you can model a set as a dictionary, but that's likely to be less efficient than using a set, and quite possibly you'll need to roll your own operations on your sets, whereas they're provided for the built in implementation. (Of course if you know more information about your problem domain you might have a better representation than the built in set... for example you might imagine an application where you want to form sets of objects from a fixed, relatively small, universe. Then you could perhaps model a set as a bit array, and lots of set operations can then be done by very fast bit fiddling operations.) -- http://mail.python.org/mailman/listinfo/python-list