---
name: group_by
kind: function
lang: py
domain: core
version: "1.0.0"
purity: pure
signature: "def group_by(xs: list, key_fn: callable) -> dict"
description: "Agrupa elementos de una lista por una funcion clave. Retorna dict de clave a lista."
tags: [list, functional, group, classify, python, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: xs
    desc: "lista de elementos a agrupar"
  - name: key_fn
    desc: "funcion que extrae la clave de agrupacion de cada elemento"
output: "dict donde las keys son los resultados de key_fn y los values son listas de elementos"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/core/core.py"
---

## Ejemplo

```python
result = group_by(["hi", "hey", "bye"], lambda s: s[0])
# {"h": ["hi", "hey"], "b": ["bye"]}
```

## Notas

Funcion pura. El orden de los elementos dentro de cada grupo se preserva.
