#python #data #datatype #set #lookup
Sets are like lists, but unordered. They are perfectly suited for lookup of
values.
- BasicSetFunctions.py : List the basic set functions.
def pretty_print(input, indent_depth, compact = False):
'''
Name: pretty_print
Description: pretty_prints a data structure
Input: <List/Tuple/Dict>, indent_depth
Output: stdout
Usage: pretty_print(dict_in, 4, T/F)
Notes: Works on any kind of data structure.
Requires: pprint module
'''
import pprint
try:
pp = pprint.PrettyPrinter(indent=indent_depth, compact=compact)
pp.pprint(input)
#pprint.PrettyPrinter(indent=indent_depth)
except:
print("Pretty print failed")
# Set definition -> List[]/Set{}
set1 = {1, 2, 3}
set2 = set('qwerty')
set3 = set()
set3.add('p')
set3.add('o')
set4 = [ 'this', 'is', 'a', ['and', 'a', 'sublist', 'too'], 'list', 'including', 'many', 'words', 'in', 'it']
# pretty_print(set1, 4)
# pretty_print(set4, 4, False)
# Basic operators (Iteratior, Addition, Removal, Check)
set_primes = { 2, 3, 5, 7, 11 }
for num in set_primes:
print(num)
set_primes.add(13)
set_primes.remove(13)
print(True if 2 in set_primes else False)
if 4 in set_primes:
print(False)
else:
print(True)
# adding elements
set3.add(2)
# removing elements
set3.discard(2)
set3.remove(4) # will throw keyerror, use discard
# remove a random element
set3.pop() # key error if the set is empty.
# Union A|B
print(set1.union(set2))
# Update A|=B adds all elements of B to A
set3.update(set2)
print(set3)
# Intersection
print(set3.intersection(set2))
# Intersection update
set3.intersection_update(set2)
print(set3)
# Difference
set3.difference(set2)
print(set3)
# Difference_update
set3.difference_update(set2)
# Symmetric Difference
set3.symmetric_difference(set2)
# Symmetric Difference Update
set3.symmetric_diference_update(set2)
# Subset
set3.issubset(set2)
# Superset
set3.issuperset(set2)
set3 < set2
set3 > set2