------------
- an unordered collection of elements
- doesn't have duplicate elements
- to create a set, use `{ elements .. }`
- to create an empty set, use `()`; `{}` is used to create an empty dictionary
Using sets
----------
Creating a set | >>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket) # show that duplicates have been removed {'orange', 'banana', 'pear', 'apple'} >>> |
Membership testing | >>> 'orange' in basket # fast membership testing True >>> 'crabgrass' in basket False >>> |
Operations between 2 sets | >>> a = set('abracadabra') >>> b = set('alacazam') >>> a # unique letters in a {'a', 'r', 'b', 'c', 'd'} >>> a - b # letters in a but not in b {'r', 'd', 'b'} >>> a | b # letters in either a or b {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} >>> a & b # letters in both a and b {'a', 'c'} >>> a ^ b # letters in a or b but not both {'r', 'd', 'b', 'm', 'z', 'l'} >>> |
Creating set comprehension | >>> a = {x for x in 'abracadabra' if x not in 'abc'} >>> a {'r', 'd'} >>> |
Using set() function to remove duplicate | >>> >>> words = [ x for x in input('Enter words separated by spaces: ').split() ] Enter words separated by spaces: hello world hello how are you you >>> words ['hello', 'world', 'hello', 'how', 'are', 'you', 'you'] >>> >>> >>> set(words) {'you', 'how', 'are', 'hello', 'world'} >>> |
Adding and removing elements | >>> s1 = { 1, 3.4, -0.9, 100, 100 } >>> s1 {-0.9, 1, 3.4, 100} >>> >>> s1.add('500') # adds a single element >>> s1 {-0.9, 1, 3.4, 100, '500'} >>> >>> s1.update([1000, 501, 234]) # adding multiple elements >>> s1 {-0.9, 1, 3.4, 100, 1000, 234, 500, 501} >>> >>> s1.discard(-.09) # removing an element >>> s1 {-0.9, 1, 3.4, 100, 1000, 234, 500, 501} >>> s1.discard(-0.9) >>> s1 {1, 3.4, 100, 1000, 234, 500, 501} >>> >>> s1.clear() # removes all elements >>> s1 set() >>> |
Other set modifiers | copy |
Sources
-------
Sets and frozen sets |