> For example, I was writing a program to detect whether two strings are > anagrams of each other. I had to write it like this: > > def isAnagram(w1, w2): > w2=list(w2) > for c in w1: > if c not in w2: > return False > else: > w2.remove(c) > return True > > But if there was a data structure in python which supported duplicate > elements(lets call it dset), then I could just write: > > def inAnagram(w1,w2): > return dset(w1)==dset(w2) > > Example of some dset methods: > {1,2,3,3} intersection {4,1,2,3,3,3} == {1,2,3,3} > {1,2,3,3} union {4,1,2,3,3,3} == {1,2,3,3,3,4} > {4,1,2,3,3,3} difference {1,2,3,3} == {4,3} > > Do you think that it would be a good idea to add this kind of data > structure to python? Or did I overlook some other easy way to solve > this kind of problems?
Just to do the anagram problem you could do... def isAnagram(w1, w2): return sorted(w1) == sorted(w2) To do the set-like operations, I guess that unless there's some itertools witchcraft available, you'd have to make your own dset type that inherits from list. Then you can define your own intersection/union etc. methods. Cheers, Drea -- http://mail.python.org/mailman/listinfo/python-list