input: Write a function to calculate the total cost of a shopping cart. The program should consider the item prices, quantity, shipping cost, and any applicable taxes. If the input is empty, return 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)==108.6875
  assert calculate_total_cost([ {"name": "widget", "price": 10, "quantity": 5 }], 5, 0.08)==64.0
  assert calculate_total_cost([], 0, 0)==0
output: def calculate_total_cost(items, shipping_cost, tax_rate):
      if not items:
          return 0
      subtotal = sum(item['price'] * item['quantity'] for item in items)
      total = subtotal + shipping_cost
      total_with_tax = total * (1 + tax_rate)
      return total_with_tax