input: Write a function to calculate the total cost of a shopping cart considering the item prices, quantity, shipping cost, and any applicable taxes. If the input is an empty list, 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)==102.75
  assert calculate_total_cost([], 7.50, 0.095)==0
  assert calculate_total_cost([{"name": "phone", "price": 300, "quantity": 1}], 10.0, 0.08)==334.0
  assert calculate_total_cost([{"name": "book", "price": 15, "quantity": 3}], 5.0, 0.05)==54.75
  assert calculate_total_cost([{"name": "pen", "price": 2, "quantity": 10}], 3.0, 0.0)==23.0
output: def calculate_total_cost(cart, shipping_cost, tax_rate):
      if not cart:
          return 0
      subtotal = sum(item['price'] * item['quantity'] for item in cart)
      total_cost = subtotal + shipping_cost
      total_cost += total_cost * tax_rate
      return total_cost