input: Write a function to print a dictionary with the elements of the input list as keys and the product of each element as values. The function should work for lists of any length, including empty lists.
  assert product_of_list([7, 8, 5])=={7: 49, 8: 64, 5: 25}
  assert product_of_list([3, 5, 4, 1, 2])=={3: 9, 5: 25, 4: 16, 1: 1, 2: 4}
  assert product_of_list([])=={}
  assert product_of_list([0])=={0: 0}
  assert product_of_list([-3, 4])=={-3: 9, 4: 16}
output: def product_of_list(lst):
      return {x: x * x for x in lst}