Python notes
Unpack unknown number of return values
foo, bar, *rest = func()
Delete items from a dictionary
del d['key'] # Raises KeyError if key not in d
d.pop('key') # Returns popped value. Raises KeyError if key not in d
d.pop('key', None) # Returns popped value. None is default value if key not in d