input: Write a function to calculate the total cost of a shopping cart based on item prices, quantities, shipping cost, and applicable taxes. The function should return the total cost as a float. If the shopping list is empty, the function should return 0.0.
  
  assert calculate_total_cost([
   {"name": "widget", "price": 10, "quantity": 5 },
   {"name": "thingy", "price": 7, "quantity": 3 },
   {"name": "doodad", "price": 5, "quantity": 2 }
  ], 7.50, 0.095) == 96.425
  assert calculate_total_cost([], 5.0, 0.08) == 0.0
output: def calculate_total_cost(shopping_list, shipping_cost, tax_rate):
      if not shopping_list:
          return 0.0
      subtotal = sum(item['price'] * item['quantity'] for item in shopping_list)
      total_cost = subtotal + shipping_cost
      total_cost += total_cost * tax_rate
      return total_cost