input: Write a function to calculate the maximum, minimum, and average values from a given sequence of numbers. If the list is empty, return None for all three values.
  
  def calculate_metrics(list):
      if not list:
          return None, None, None
      
      maximum = max(list)
      minimum = min(list)
      average = sum(list) / len(list)
      
      return maximum, minimum, average
  
  assert calculate_metrics([3, 4, 5, 6, 21, 8]) == (21, 3, 7.833333333333333)
  assert calculate_metrics([]) == (None, None, None)
  assert calculate_metrics([10, 20, 30, 40]) == (40, 10, 25.0)
  assert calculate_metrics([1]) == (1, 1, 1.0)
output: def calculate_metrics(list):
      if not list:
          return None, None, None
      
      maximum = max(list)
      minimum = min(list)
      average = sum(list) / len(list)
      
      return maximum, minimum, average