# Trabajar con listas

## **Crear una nueva lista**&#x20;

create\_list()

{% tabs %}
{% tab title="Descripción" %}
Introduzca la función en el **"Calculadora"** campo en la configuración del bloque:&#x20;

**create\_list(name)** - crea una nueva lista. El resultado es el ID de la lista.

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;name** - nombre de la lista. El nombre se especifica entre comillas simples.
{% endtab %}

{% tab title="Ejemplo" %}
`list_id = create_list("registered")`

<div data-with-frame="true"><figure><img src="/files/c290b010757df31a93aff7ee12efe7d8063bd9b6" alt="" width="563"><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

## Crear una lista desde el bloque sin duplicados

create\_list\_if\_not\_exist()

{% tabs %}
{% tab title="Descripción" %}
**create\_list\_if\_not\_exist('list\_name')** - crea una nueva lista si aún no existe una con el nombre dado y devuelve su identificador, o devuelve el identificador de la lista existente.

Parámetro obligatorio:

**list\_name** - nombre de la nueva lista que se va a crear.
{% endtab %}

{% tab title="Ejemplo" %}

<div data-with-frame="true"><figure><img src="/files/a381e9f895ae49a1fd4d36be27128de5f0aa6029" alt="" width="563"><figcaption></figcaption></figure></div>

```
new_list = create_list_if_not_exist('Lista de participantes')
```

{% endtab %}
{% endtabs %}

## Añadir un cliente a la lista

add\_to\_list()

{% tabs %}
{% tab title="Descripción" %}
**add\_to\_list(list\_id, client\_id)** - añade un cliente a una lista. La función no devuelve nada.

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - ID de la lista

**client\_id** - ID de cliente de MaviBot. Si no se proporciona, se usa el ID del cliente actual.
{% endtab %}
{% endtabs %}

## Mover un cliente a la lista

move\_to\_list()

{% tabs %}
{% tab title="Descripción" %}
**move\_to\_list(list\_id, client\_id)** - mueve un cliente a la lista (¡Importante! El cliente se elimina de todas las demás listas y se mueve a la especificada). El resultado es un valor booleano (True o False).

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - ID de la lista

**client\_id** - ID de cliente de MaviBot. Si no se proporciona, se usa el ID del cliente actual.
{% endtab %}
{% endtabs %}

## Eliminar un cliente de la lista

remove\_from\_list()

{% tabs %}
{% tab title="Descripción" %}
**remove\_from\_list(list\_id, client\_id)** - elimina de la lista a un cliente con el client\_id especificado.

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - ID de la lista

**client\_id** - ID de cliente de MaviBot. Si no se proporciona, se usa el ID del cliente actual.
{% endtab %}
{% endtabs %}

## Eliminar listas&#x20;

remove\_list\_from\_project(list\_id, clear\_list)

{% tabs %}
{% tab title="Descripción" %} <mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - parámetro obligatorio; el ID de la lista que se va a eliminar.

**clear\_list** — parámetro opcional; acepta dos valores: True o False (el valor predeterminado es False).

Si no proporciona este parámetro y la lista contiene clientes, recibirá la siguiente respuesta:***"No se puede eliminar la lista, la lista no está vacía"***

Si la lista está vacía, se eliminará sin problemas. Sin embargo, si establece **clear\_list** en True, la lista se eliminará independientemente de si contiene clientes o no.
{% endtab %}
{% endtabs %}

## Eliminar etiquetas

remove\_label\_from\_project(list\_id, clear\_list)

{% tabs %}
{% tab title="Descripción" %} <mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - parámetro obligatorio; el ID de la etiqueta que se va a eliminar.

**clear\_list** - parámetro opcional; acepta dos valores: True o False (el valor predeterminado es False).

Si este parámetro no se proporciona y la etiqueta está asignada a clientes, recibirá la siguiente respuesta:&#x20;***"No se puede eliminar la lista, la lista no está vacía"***

Si la etiqueta no está asignada a ningún cliente, se eliminará sin problemas. Sin embargo, si **clear\_list** se establece en True, la etiqueta se eliminará independientemente de si está asignada a clientes o no.
{% endtab %}
{% endtabs %}

## Vaciar la lista de clientes&#x20;

clear\_list()

{% tabs %}
{% tab title="Descripción" %}
**clear\_list(list\_id)** - vacía la lista de clientes

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id -** ID de la lista. Después de usarla, todos los clientes se eliminarán de la lista especificada.&#x20;
{% endtab %}
{% endtabs %}

## Obtener el número de clientes en la lista

list\_size()

{% tabs %}
{% tab title="Descripción" %}
**list\_size(list\_id)** – cuenta el número total de clientes en la lista

Parámetros:&#x20;

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id**- ID de la lista
{% endtab %}
{% endtabs %}

## Contar el número de entradas de clientes únicos en varias listas

lists\_joint\_count()

{% tabs %}
{% tab title="Descripción" %}
**lists\_joint\_count(massive\_list)** – cuenta el número total de entradas de clientes únicos en varias listas. La función toma como entrada un array de IDs de lista y devuelve un número.

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;massive\_list** - un array que contiene los IDs de las listas en las que se contarán las entradas de clientes únicos. El formato es: **\['list\_id1', 'list\_id2', ..., 'list\_idN']**
{% endtab %}

{% tab title="Ejemplo de código para copiar" %}

```
/*Creando una lista*/
list_id = create_list('Nueva lista')

/*Comprobar si el cliente está en la lista*/
k=inlist(list_id, client_id)

/*Obtener el tamaño de la lista — número total de clientes en la lista*/
razm=list_size(1)

/*Obtener el número total de entradas de clientes únicos en varias listas*/
k=lists_joint_count('[144636,144634]')
```

{% endtab %}
{% endtabs %}

## Comprobar si un cliente está en la lista

inlist()

{% tabs %}
{% tab title="Descripción" %}
**inlist(list\_id,client\_id)** - comprueba si un cliente está en la lista. El resultado es un valor booleano (True o False).

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - ID de la lista

**client\_id** - ID de cliente de MaviBot. Si no se proporciona, se usa el ID del cliente actual.&#x20;
{% endtab %}
{% endtabs %}

## Comprobar si un participante del chat está en una lista específica

some\_client\_in\_list()

{% tabs %}
{% tab title="Descripción" %}
**some\_client\_in\_list(list\_id, recepient)**

Parámetros:

<mark style="color:rojo;">**!**</mark>**&#x20;list\_id** - ID de la lista;&#x20;

<mark style="color:rojo;">**!**</mark>**&#x20;recepient** - ID de usuario de mensajería que se está comprobando (platform\_id). Para chats, el valor de la variable es chat\_member\_id.&#x20;

Devuelve valores:

True - el cliente está en la lista;

False - el cliente no está en la lista especificada.
{% endtab %}

{% tab title="Ejemplo" %}

<div data-with-frame="true"><figure><img src="/files/54b97fbf42ee327c58c6235497a3df5424a04534" alt=""><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="Ejemplo de código para copiar" %}

```
/*Ejemplo de comprobación de si un participante del chat está en la lista, donde el primer parámetro es el ID de la lista y el segundo es el ID de chat del usuario*/

r = some_client_in_list(123456, chat_member_id)
```

{% endtab %}
{% endtabs %}

### Recuperar elementos de una lista

count\_occurrences()

{% tabs %}
{% tab title="Descripción" %}
**count\_occurrences(array, element)** - devuelve el número de elementos especificados contenidos en la lista.

Parámetros:

**arreglo** - parámetro obligatorio; lista de elementos

**element** - parámetro obligatorio; elemento a contar
{% endtab %}
{% endtabs %}

## Obtener un ID de cliente aleatorio de la lista

random\_list\_member(list\_id)

{% tabs %}
{% tab title="Descripción" %}
random\_list\_member(list\_id) - devuelve un ID de cliente aleatorio en la lista especificada.

list\_id - parámetro obligatorio, ID de la lista.

El ID de la lista, que contiene a sus clientes, se puede encontrar en **"Listas"** :

<figure><img src="/files/f7e62305717e43e1a6f4d7c48255aa63cf9f97b5" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Ejemplo de trabajo con listas en la Calculadora

<details>

<summary>ejemplo</summary>

Veamos un ejemplo de uso de funciones en la **"Calculadora"** para trabajar con listas.

<mark style="color:rojo;">**¡Importante!**</mark> Necesita guardar un nuevo ID de lista para poder usarlo más tarde. Para ello, asigne el resultado de la función a una variable, es decir, list\_id = ...

<div data-with-frame="true"><figure><img src="/files/e3db9a8bbf6b438e8abe1ecba09c87e7e277acf7" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/11e50ee47c5146d450e0634f985c8ecfa9b31397" alt="" width="375"><figcaption></figcaption></figure></div>

Ahora puede realizar fácilmente otras operaciones con la lista: comprobar si un cliente está en la lista, añadir, mover o eliminar un cliente.

Por ejemplo, comprobemos si un cliente está en la lista con ID 12333:

<div data-with-frame="true"><figure><img src="/files/4a75ce2286255ba2356025b6986148a2671f13c4" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/1f581fb84f20fe32e8c5f8b0adc0e383b85195bb" alt="" width="375"><figcaption></figcaption></figure></div>

Es muy conveniente usar listas al mostrar datos estadísticos:

<figure><img src="/files/9f52933e090ea5762f75409fa57786388381cd23" alt="" width="563"><figcaption></figcaption></figure>

A menudo es necesario obtener el número total de entradas únicas en un conjunto de listas; esto se puede hacer fácilmente usando la `lists_joint_count()` función.

<div data-with-frame="true"><figure><img src="/files/3ea2457992a926bb3eb4427c04a7dba4903a835e" alt="" width="563"><figcaption></figcaption></figure></div>

a

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/es/chatbot/functions/calculadora/lists.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
