Python set is immutable.
Python set is unordered values with no duplicates.
empty_set = set() # {} - will not work, because it is a dict pets = {'dog', 'cat', 'parrot', 'parrot'} pets_2 = {'dog', 'cat', 'lizzard', 'fish'} print(pets) # {'parrot', 'cat', 'dog'} (random order, no duplicates) print(len(pets)) # 3 (no duplicates) print('Check if element is in the set:') print('cat' in pets) # True print('horse' not in pets) # True print('Add element to the set:') pets.add('hamster') print(pets) # {'cat', 'hamster', 'parrot', 'dog'} print('Get intersection between two sets:') print(pets.intersection(pets_2)) # {'dog', 'cat'} print('Get two sets combined (no duplicates):') print(pets.union(pets_2)) # {'parrot', 'dog', 'hamster', 'cat', 'fish', 'lizzard'} print('Loop thru items in the set:') for pet in pets: print('Pet item:', pet) print('Loop thru items in the set with getting element index:') for pet_index, pet_name in enumerate(pets): # enumerate(pets, start=1) to start from 1 print('Pet index:', pet_index, ' pet name:', pet_name) print('Join set items into a string:') pets_str = '; '.join(pets) print(pets_str) # dog; cat; parrot print('Split string into set:') pets_set = set(pets_str.split('; ')) print(pets_set) # {'cat', 'parrot', 'dog'}
Set operations:
# Sets store ... well sets empty_set = set() # Initialize a set with a bunch of values. Yeah, it looks a bit like a dict. Sorry. some_set = {1, 1, 2, 2, 3, 4} # some_set is now {1, 2, 3, 4} # Similar to keys of a dictionary, elements of a set have to be immutable. invalid_set = {[1], 1} # => Raises a TypeError: unhashable type: 'list' valid_set = {(1,), 1} # Can set new variables to a set filled_set = some_set # Add one more item to the set filled_set.add(5) # filled_set is now {1, 2, 3, 4, 5} # Do set intersection with & other_set = {3, 4, 5, 6} filled_set & other_set # => {3, 4, 5} # Do set union with | filled_set | other_set # => {1, 2, 3, 4, 5, 6} # Do set difference with - {1, 2, 3, 4} - {2, 3, 5} # => {1, 4} # Do set symmetric difference with ^ {1, 2, 3, 4} ^ {2, 3, 5} # => {1, 4, 5} # Check if set on the left is a superset of set on the right {1, 2} >= {1, 2, 3} # => False # Check if set on the left is a subset of set on the right {1, 2} <= {1, 2, 3} # => True # Check for existence in a set with in 2 in filled_set # => True 10 in filled_set # => False
Set comprehension
nums = [1,1,2,2,2,3,3,4,5,5,5] my_set = set() for n in nums: my_set.add(n) print(my_set) # {1, 2, 3, 4, 5} (unique values) # copy set using set comprehension my_set2 = {n for n in nums} print(my_set2) # {1, 2, 3, 4, 5} # copy set using set comprehension with if condition my_set3 = {n for n in nums if n%2==0} print(my_set3) # {2, 4}