E
ErichCart ErichCart
Many times when I am writing some program in python, I notice that I
could transform my list into set, then use the set methods like union,
intersection, set equality etc. , and it will solve my problem easily.
But then I realize that if I transform my list into set, it will
remove duplicates of elements in the list and so I will lose
information from my original list.
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?
could transform my list into set, then use the set methods like union,
intersection, set equality etc. , and it will solve my problem easily.
But then I realize that if I transform my list into set, it will
remove duplicates of elements in the list and so I will lose
information from my original list.
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?