Magic Columns
  Write a function called magic_col(a_2d_list), which takes as a
  parameter a two dimensional list of integers.  This function should return
  \(True\) if all of the columns sum to the same value.  It should return
  \(False\) in all other cases.
Remove Duplicates
  Write a function called remove_dups(a_list), which takes a one
  dimensional list of items as a parameter.  This function should return a new
  list, which contains all of the unique items from the input list.
Vigenère Square
  Write a function called generate_vigenere(), which takes 0
  parameters.  Your function should return a dictionary that represents a
  Vigenère square.  Your function should generate this dictionary
  dynamically, as opposed to hard-coding the values.  For example:
>>> square = generate_vigenere() >>> for key in square: ... print(key, "->", square[key]) 'a' -> ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 'c' -> ['c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b'] 'b' -> ['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a'] 'e' -> ['e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd'] 'd' -> ['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c'] . . .