input: Write a function to calculate the total cost of a shopping cart considering item prices, quantity, shipping cost, and tax rate. The function should return the total cost as a float. If the shopping cart is empty, return 0.0.
  assert shopping_cart_total([{"name": "widget", "price": 10, "quantity": 5}, {"name": "thingy", "price": 7, "quantity": 3}, {"name": "doodad", "price": 5, "quantity": 2}], 7.50, 0.095) == 104.5875
  assert shopping_cart_total([], 7.50, 0.095) == 0.0
  assert shopping_cart_total([{"name": "book", "price": 15.50, "quantity": 2}], 5.00, 0.075) == 38.0825
output: def shopping_cart_total(cart, shipping_cost, tax_rate):
      if not cart:
          return 0.0
      subtotal = sum(item['price'] * item['quantity'] for item in cart)
      total_cost = subtotal + shipping_cost
      total_cost *= (1 + tax_rate)
      return total_cost