input: Write a function to print a formatted table given a dataset.
  assert print_table([["Name", "Age", "Location"], ["James", "30", "London"], ["Mary", "25", "New York"], ["John", "28", "Toronto"]]) == None
  assert print_table([["Product", "Price", "Quantity"], ["Apple", "1.20", "50"], ["Banana", "0.50", "100"], ["Cherry", "2.00", "200"]]) == None
  assert print_table([["City", "Country"], ["Paris", "France"], ["Berlin", "Germany"], ["Tokyo", "Japan"]]) == None
output: def print_table(dataset):
      # Calculate the maximum width of each column
      col_widths = [max(len(str(item)) for item in col) for col in zip(*dataset)]
      
      # Print each row with proper formatting
      for row in dataset:
          print(" | ".join(f"{item:<{col_widths[i]}}" for i, item in enumerate(row)))