> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/data-logic/data-operations/list-operations.md).

# List Operations

Este bloque de función ofrece un conjunto de manipulaciones comunes de listas en una única interfaz fácil de usar. Elige una operación desde el menú desplegable y el bloque adaptará sus entradas y salidas para que puedas trabajar con listas (crear, consultar, modificar, combinar, filtrar y más) sin escribir código.

## 📥 Entradas

Las entradas disponibles cambian dinámicamente según la operación seleccionada.

* `List`\
  Entrada genérica de lista usada por muchas operaciones.
* `Element`\
  Un elemento único para añadir (`append`), eliminar o buscar.
* `Index`\
  Un índice entero para operaciones como `Get`, `Set`, `Insert` o `Pop`.
* `List(s)`\
  Cuando combinas varias listas (`Pair`), este conector acepta una lista de listas.
* `List (String)`\
  Una entrada de texto única usada por el método `Create` para construir una lista a partir de una cadena separada por comas.

(Otras entradas aparecerán según lo requiera el método elegido.)

## 📤 Salidas

Las salidas también son dinámicas y reflejan el método seleccionado.

* `List`\
  Lista resultante tras operaciones de mutación (por ejemplo, `append`, `extend`, `remove`).
* `Filtered List`\
  Resultado de una operación de filtrado.
* `Element`\
  Un elemento devuelto por `Get`, `Min`, `Max`, etc.
* `Size`\
  Longitud devuelta por el método `Len`.
* `Index`\
  Índice de un elemento para el método `Index`.

(Salidas adicionales aparecerán según el método que selecciones.)

## 🕹️ Controles

* `Select a method`\
  Un desplegable con un pequeño botón de acción. Elige la operación de lista deseada (ejemplos: `append`, `extend`, `filter`, `create`, `len`, `min`, `max`, `slice`, `pair`). El bloque actualiza automáticamente los conectores al cambiar la selección.
* `Info`\
  Un área de texto pequeña que muestra pistas de uso para el método seleccionado (por ejemplo, recuerda que las condiciones de `filter` deben ser una lista booleana de la misma longitud).

## 🎨 Características

* Conectores dinámicos: las entradas y salidas se crean o eliminan automáticamente al elegir un método, manteniendo la interfaz limpia.
* Amplio conjunto de operaciones: admiten creación, consulta, modificación y combinación de listas (`append`, `extend`, `insert`, `pop`, `remove`, `filter`, `slice`, `sort`, `reverse`, `sum`, `min/max`, `index`, `set`, `pair`, y más).
* Validación incorporada: avisa cuando los índices están fuera de rango o cuando los tamaños de lista no coinciden (por ejemplo en `filter` o `pair`).
* Crear desde texto: construye una lista rápidamente desde una cadena separada por comas usando el método `Create`.

## ⚙️ Mecanismo de ejecución

1. Elige un método usando el control `Select a method`.
2. El bloque actualiza sus conectores de entrada y salida para que coincidan con la operación seleccionada.
3. Proporciona las entradas necesarias conectando otros bloques o introduciendo valores.
4. Cuando se ejecute el escenario, el bloque realizará la operación de lista elegida y mostrará el resultado en los conectores de salida.
5. Si las entradas son inválidas (por ejemplo, tamaños desajustados o índice inválido), el bloque mostrará un mensaje de error y devolverá un valor seguro cuando sea apropiado.

## 📝 Instrucciones de uso

1. Abre el bloque y selecciona la operación deseada desde `Select a method`.
2. Revisa el texto en `Info` para orientarte rápidamente sobre el método.
3. Conecta las entradas apropiadas (por ejemplo, conecta una `List` y un `Element` para `Append`).
4. Ejecuta el escenario y lee los resultados en las salidas que aparezcan para el método elegido.

## 💡 Consejos y trucos

* `Create`\
  Úsalo junto con un `String Input` para permitir que usuarios escriban elementos separados por comas y convertirlos automáticamente en una lista.
* `Filter`` y` Filter Inverse `Para filtrar datos, genera la lista de condiciones con bloques lógicos como`Equals`,` Greater`o`Less\` y alimenta esa lista booleana a este bloque para extraer los elementos coincidentes.
* `Pair`\
  Útil para combinar flujos de datos en paralelo. `Pair` funciona bien con salidas de `Object Detection` o `Object Detection - Custom` cuando tienes listas paralelas (por ejemplo, posiciones y tamaños) y quieres emparejarlas para registro o exportación.
* `Get`, `Index`, `Min`, `Max`\
  Combínalos con `Get Element`, `Exclude Nones` o `Replace None` para sanear las entradas antes de consultar o agregar valores de la lista.
* `Sum`, `Len`\
  Úsalos con `Scope` o `CSV Export` para obtener resúmenes numéricos para graficar o registrar.
* `Slice`\
  Cuando proceses lotes, combínalo con `Debatch` o `Batch Processing` para iterar y procesar sublistas.

Consejos generales:

* Usa `Data Memory` si quieres mantener una lista estable hasta que llegue una actualización explícita.
* Crea pipelines de registro o exportación: tras reorganizar listas aquí, envía los resultados a `Data to JSON` o `CSV Export` para almacenamiento externo.
* Al crear listas desde texto, usa `Find Substring` y `String Merge` para preparar las cadenas antes de aplicar `Create`.

(Ten estos bloques relacionados listos en tu espacio de trabajo para construir pipelines robustos.)

## 🛠️ Solución de problemas

* `Filter` y desajuste de tamaño\
  Si ves un error sobre tamaños no iguales, asegúrate de que la lista de condiciones tenga la misma longitud que la lista de datos. Usa `Get Batch Size` o `Len` para diagnosticar tamaños.
* `Index out of range`\
  Para métodos que usan un índice (`Get`, `Set`, `Insert`, `Pop`), verifica los límites antes de conectar. Usa `Len` o `Get Batch Size` para obtener rangos válidos.
* `Unexpected types`\
  Algunas operaciones esperan elementos numéricos o comparables (`Sum`, `Min`, `Max`, `Sort`). Usa `Replace None` y `Exclude Nones` para limpiar la lista primero.
* `Creating lists from text`\
  Al usar `Create`, asegúrate de que los elementos estén separados por comas. Los espacios extra se recortan automáticamente, pero los tokens no numéricos permanecen como cadenas — verifica con `Find Substring` o `String Operations` si necesitas un parsing adicional.

Si tienes problemas persistentes, consulta el texto en `Info` para el método seleccionado; suele contener orientación rápida y específica.
