input: Write a function to calculate the dot product of two lists. The function should take two arguments, both lists, and return the dot product. If the lists are of different lengths, the function should return None.
  assert dot_product([1, 2], [3, 4]) == 11
  assert dot_product([1, 0], [0, 1]) == 0
  assert dot_product([2, 3, 4], [5, 6, 7]) == 56
  assert dot_product([1], [2]) == 2
  assert dot_product([1, 2], [3]) == None
output: def dot_product(list1, list2):
      if len(list1) != len(list2):
          return None
      return sum(x * y for x, y in zip(list1, list2))