1. from collections import defaultdict, Counter
  2. def format_collections(data):
  3. """Formats collections for concise output."""
  4. if isinstance(data, dict):
  5. formatted = "{\n"
  6. for key, value in data.items():
  7. formatted += f" '{key}': {format_collection(value)}\n"
  8. formatted += "}"
  9. return formatted
  10. elif isinstance(data, list):
  11. formatted = "[{}]\n".format(",".join([format_collection(item) for item in data]))
  12. return formatted
  13. elif isinstance(data, Counter):
  14. formatted = "{"
  15. for key, count in data.items():
  16. formatted += f"'{key}': {count}, "
  17. formatted = formatted[:-2] + "}" # Remove trailing comma
  18. return formatted
  19. else:
  20. return str(data) # Default: string representation
  21. def format_collection(item):
  22. """Applies formatting to individual items within collections."""
  23. if isinstance(item, (dict, list, Counter)):
  24. return format_collections(item)
  25. else:
  26. return item

Add your comment