input: Write a function to generate a dictionary where the keys are elements from the given list and the values are their squared values.
  
  
  def generate_square_dict(numbers):
      return {num: num**2 for num in numbers}
  
  assert generate_square_dict([1, 2, 3, 4, 5]) == {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
  assert generate_square_dict([]) == {}
  assert generate_square_dict([0, -1, -2]) == {0: 0, -1: 1, -2: 4}
  
output: def generate_square_dict(numbers):
      return {num: num**2 for num in numbers}