Issue 638095: SimpleSets - Python tracker (original) (raw)

In the spirit of heapq for lists, this module provides set operations for dictionaries.

Virtues: -- lightweight, fast, and easy to learn -- works well with any iterable input -- takes advantage of the existing implementation

Vices: -- does not support sets of sets -- need to wrap sets in list() before displaying -- no operators

This lightweight module (80 lines of code) is meant to be a convenient, fast solution for daily tasks which do not require the full firepower of the heavyweight Sets module.

Examples

print 'IsSet', isset('factoid'), isset('misinformation') print 'Equals', equals('algorithm','logarithm'), equals ('sin','cos') print 'Subset', issubset('heart', 'thread'), issubset ('treat','tryst') a = 'abracadabra' b = 'alacazam' print 'Union', list(union(a,b)) print 'Intersection', list(intersection(a,b)) print 'Difference', list(difference(a,b)) print 'SymmetricDifference', list(symmetric_difference (a,b)) print 'Uniquification', list(set(a)) print 'Cardinality', len(set(a)) print 'Iteration', [letter.upper() for letter in set(a)] print 'Membership', 'b' in set(a), 'e' in set(a)

Logged In: YES user_id=357491

I personally don't see the need for this. Basically everything here can already be done if you are willing to create a set first and then use the set's methods. Yes, there might be a performancce difference if you are using a dictionary, but if this functionality is really needed for dicts perhaps it should be added to dicts themselves. I just don't see any special reason to add this since this is all easily done enough using sets.

Perhaps a PEP is in order to get this in?