code: def get_filetypes(filelist, path=None, size=os.path.getsize):
      path = path or (lambda _: _)
      histo = defaultdict(int)
      for entry in filelist:
          ext = os.path.splitext(path(entry))[1].lstrip('.').lower()
          if ext and ext[0] == 'r' and ext[1:].isdigit():
              ext = "rar"
          elif ext == "jpeg":
              ext = "jpg"
          elif ext == "mpeg":
              ext = "mpg"
          histo[ext] += size(entry)
      total = sum(histo.values())
      if total:
          for ext, val in histo.items():
              histo[ext] = int(val * 100.0 / total + .499)
      return sorted(zip(histo.values(), histo.keys()), reverse=True)