On Thu, Feb 28, 2019 at 10:58 PM Antoine Pitrou <solip...@pitrou.net> wrote: > Some of them may be coming from C++, where the respective > characteristics of set and map (or unordered_set and > unordered_multimap) are closely related. I'm sure other languages > show similar analogies. > > On a more abstract level, set and dict are both content-addressed > collections parametered on hash and equality functions. For > algorithmically-minded people it makes sense to see a close connection > between them.
Looking from the opposite direction, sets and dicts can be used to solve a lot of the same problems. Want to detect cycles? Stuff things you see into a set. If the thing is in the set, you've already seen it. What if you want to track WHERE the cycle came from? Then stuff things you see into a dict, mapping them to some kind of trace information. Again, if the thing's in the collection, you've already seen it, but now, since it's a dict, you can pull up some more info. And collections.Counter can be used kinda like a multiset, but it's definitely a dictionary. I think the similarities are more pragmatic than pure, but that doesn't mean they aren't real. ChrisA _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com