input: Write a function to calculate the Gini coefficient of a given dataset. This function should take a list of numerical values as input and return a single numerical value representing the Gini coefficient.
  
  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, 2, 3, 4, 5])==0.28
  assert gini([10, 10, 10, 10, 10])==0.0
  assert gini([1])==0.0
  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
      for i, value in enumerate(data):
          gini_sum += (2 * (i + 1) - n - 1) * value
      return gini_sum / (n * total_sum)