- # sets are unordered collections of unique hashable elements
- # Python23 tested vegaseat 09mar2005
- # Python v2.4 has sets built in
- import sets
- print "List the functions within module 'sets':"
- for funk in dir(sets):
- print funk
- # create an empty set
- set1 = set([])
- # now load the set
- for k in range(10):
- set1.add(k)
- print "nLoaded a set with 0 to 9:"
- print set1
- set1.add(7)
- print "Tried to add another 7, but it was already there:"
- print set1
- # make a list of fruits as you put them into a basket
- basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
- print "nThe original list of fruits:"
- print basket
- # create a set from the list, removes the duplicates
- fruits = sets.Set(basket)
- print "nThe set is unique, but the order has changed:"
- print fruits
- # let's get rid of some duplicate words
- str1 = "Senator Strom Thurmond dressed as as Tarzan"
- print "nOriginal string:"
- print str1
- print "A list of the words in the string:"
- wrdList1 = str1.split()
- print wrdList1
- # now create a set of unique words
- strSet = sets.Set(wrdList1)
- print "The set of the words in the string:"
- print strSet
- print "Convert set back to string (order has changed!):"
- print " ".join(strSet)
- print
- # comparing two sets, bear with me ...
- colorSet1 = sets.Set(['red','green','blue','black','orange','white'])
- colorSet2 = sets.Set(['black','maroon','grey','blue'])
- print "colorSet1 =", colorSet1
- print "colorSet2 =", colorSet2
- # same as (colorSet1 - colorSet2)
- colorSet3 = colorSet1.difference(colorSet2)
- print "nThese are the colors in colorSet1 that are not in colorSet2:"
- print colorSet3
- # same as (colorSet1 | colorSet2)
- colorSet4 = colorSet1.union(colorSet2)
- print "nThese are the colors appearing in both sets:"
- print colorSet4
- # same as (colorSet1 ^ colorSet2)
- colorSet5 = colorSet1.symmetric_difference(colorSet2)
- print "nThese are the colors in colorSet1 or in colorSet2, but not both:"
- print colorSet5
- # same as (colorSet1 & colorSet2)
- colorSet6 = colorSet1.intersection(colorSet2)
- print "nThese are the colors common to colorSet1 and colorSet2:"
- print colorSet6