input: Write a function to calculate the Gini coefficient of a given dataset. The function should return the Gini coefficient as a floating-point number. If the dataset is empty, the function should return 0.
  assert gini([2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 21]) == 0.605
  assert gini([1, 1, 1, 1, 1, 1]) == 0.0
  assert gini([1, 2, 3, 4, 5]) == 0.28
  assert gini([]) == 0.0
output: def gini(data):
      if not data:
          return 0.0
      n = len(data)
      data.sort()
      total_sum = sum(data)
      gini_sum = 0.0
      for i, value in enumerate(data):
          gini_sum += (2 * (i + 1) - n - 1) * value
      return gini_sum / (n * total_sum)