# Работа со списками

## **Создать новый список**&#x20;

create\_list()

{% tabs %}
{% tab title="Описание" %}
Введите функцию в **«Калькулятор»** поле в настройках блока:&#x20;

**create\_list(name)** - создаёт новый список. Результат — ID списка.

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;name** - имя списка. Имя указывается в одинарных кавычках.
{% endtab %}

{% tab title="Пример" %}
`list_id = create_list("registered")`

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

## Создание списка из блока без дубликатов

create\_list\_if\_not\_exist()

{% tabs %}
{% tab title="Описание" %}
**create\_list\_if\_not\_exist('list\_name')** - создаёт новый список, если список с указанным именем ещё не существует, и возвращает его идентификатор, либо возвращает идентификатор существующего списка.

Обязательный параметр:

**list\_name** - имя для создаваемого нового списка.
{% endtab %}

{% tab title="Пример" %}

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

```
new_list = create_list_if_not_exist('Список участников')
```

{% endtab %}
{% endtabs %}

## Добавление клиента в список

add\_to\_list()

{% tabs %}
{% tab title="Описание" %}
**add\_to\_list(list\_id, client\_id)** - добавляет клиента в список. Функция возвращает none.

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id** - ID списка

**client\_id** - ID клиента MaviBot. Если не указан, используется ID текущего клиента.
{% endtab %}
{% endtabs %}

## Перемещение клиента в список

move\_to\_list()

{% tabs %}
{% tab title="Описание" %}
**move\_to\_list(list\_id, client\_id)** - перемещает клиента в список (Важно! Клиент удаляется из всех остальных списков и переносится в указанный). Результат — логическое значение (True или False).

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id** - ID списка

**client\_id** - ID клиента MaviBot. Если не указан, используется ID текущего клиента.
{% endtab %}
{% endtabs %}

## Удаление клиента из списка

remove\_from\_list()

{% tabs %}
{% tab title="Описание" %}
**remove\_from\_list(list\_id, client\_id)** - удаляет клиента с указанным client\_id из списка.

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id** - ID списка

**client\_id** - ID клиента MaviBot. Если не указан, используется ID текущего клиента.
{% endtab %}
{% endtabs %}

## Удаление списков&#x20;

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

{% tabs %}
{% tab title="Описание" %} <mark style="color:красный;">**!**</mark>**&#x20;list\_id** - обязательный параметр; ID списка, который нужно удалить.

**clear\_list** — необязательный параметр; принимает два значения: True или False (по умолчанию False).

Если вы не укажете этот параметр, и в списке есть клиенты, вы получите следующий ответ:***"Нельзя удалить список, список не пуст"***

Если список пуст, он будет удалён без проблем. Однако если вы установите **clear\_list** в True, список будет удалён независимо от того, есть в нём клиенты или нет.
{% endtab %}
{% endtabs %}

## Удаление тегов

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

{% tabs %}
{% tab title="Описание" %} <mark style="color:красный;">**!**</mark>**&#x20;list\_id** - обязательный параметр; ID тега, который нужно удалить.

**clear\_list** - необязательный параметр; принимает два значения: True или False (по умолчанию False).

Если этот параметр не указан, и тег назначен клиентам, вы получите следующий ответ:&#x20;***"Нельзя удалить список, список не пуст"***

Если тег не назначен ни одному клиенту, он будет удалён без проблем. Однако если **clear\_list** установлено True, тег будет удалён независимо от того, назначен он клиентам или нет.
{% endtab %}
{% endtabs %}

## Очистить список клиентов&#x20;

clear\_list()

{% tabs %}
{% tab title="Описание" %}
**clear\_list(list\_id)** - очищает список клиентов

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id -** ID списка. После использования все клиенты будут удалены из указанного списка.&#x20;
{% endtab %}
{% endtabs %}

## Получить количество клиентов в списке

list\_size()

{% tabs %}
{% tab title="Описание" %}
**list\_size(list\_id)** – подсчитывает общее количество клиентов в списке

Параметры:&#x20;

<mark style="color:красный;">**!**</mark>**&#x20;list\_id**- ID списка
{% endtab %}
{% endtabs %}

## Подсчитать количество уникальных записей клиентов в нескольких списках

lists\_joint\_count()

{% tabs %}
{% tab title="Описание" %}
**lists\_joint\_count(massive\_list)** – подсчитывает общее количество уникальных записей клиентов в нескольких списках. Функция принимает на вход массив ID списков и возвращает число.

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;massive\_list** - массив, содержащий ID списков, в которых будут подсчитываться уникальные записи клиентов. Формат: **\['list\_id1', 'list\_id2', ..., 'list\_idN']**
{% endtab %}

{% tab title="Пример кода для копирования" %}

```
/*Создание списка*/
list_id = create_list('Новый список')

/*Проверить, находится ли клиент в списке*/
k=inlist(list_id, client_id)

/*Получить размер списка — общее количество клиентов в списке*/
razm=list_size(1)

/*Получить общее количество уникальных записей клиентов в нескольких списках*/
k=lists_joint_count('[144636,144634]')
```

{% endtab %}
{% endtabs %}

## Проверить, находится ли клиент в списке

inlist()

{% tabs %}
{% tab title="Описание" %}
**inlist(list\_id,client\_id)** - проверяет, находится ли клиент в списке. Результат — логическое значение (True или False).

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id** - ID списка

**client\_id** - ID клиента MaviBot. Если не указан, используется ID текущего клиента.&#x20;
{% endtab %}
{% endtabs %}

## Проверить, находится ли участник чата в определённом списке

some\_client\_in\_list()

{% tabs %}
{% tab title="Описание" %}
**some\_client\_in\_list(list\_id, recepient)**

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;list\_id** - ID списка;&#x20;

<mark style="color:красный;">**!**</mark>**&#x20;recepient** - проверяемый ID пользователя мессенджера (platform\_id). Для чатов значением переменной является chat\_member\_id.&#x20;

Возвращает значения:

True - клиент находится в списке;

False - клиент не находится в указанном списке.
{% endtab %}

{% tab title="Пример" %}

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

{% tab title="Пример кода для копирования" %}

```
/*Пример проверки, находится ли участник чата в списке, где первый параметр — ID списка, а второй — chat ID пользователя*/

r = some_client_in_list(123456, chat_member_id)
```

{% endtab %}
{% endtabs %}

### Получение элементов из списка

count\_occurrences()

{% tabs %}
{% tab title="Описание" %}
**count\_occurrences(array, element)** - возвращает количество указанных элементов, содержащихся в списке.

Параметры:

**массив** - обязательный параметр; список элементов

**element** - обязательный параметр; элемент для подсчёта
{% endtab %}
{% endtabs %}

## Получение случайного ID клиента из списка

random\_list\_member(list\_id)

{% tabs %}
{% tab title="Описание" %}
random\_list\_member(list\_id) - возвращает один случайный ID клиента в указанном списке.

list\_id - обязательный параметр, ID списка.

ID списка, который содержит ваших клиентов, можно найти в разделе **"Списки"** :

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

## Пример работы со списками в Калькуляторе

<details>

<summary>пример</summary>

Рассмотрим пример использования функций в **«Калькулятор»** для работы со списками.

<mark style="color:красный;">**Важно!**</mark> Нужно сохранить ID нового списка, чтобы использовать его позже. Для этого присвойте результат функции переменной, то есть list\_id = ...

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

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

Теперь вы можете легко выполнять другие операции со списком — проверять, находится ли клиент в списке, добавлять, перемещать или удалять клиента.

Например, проверим, находится ли клиент в списке с ID 12333:

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

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

Очень удобно использовать списки при отображении статистических данных:

<figure><img src="/files/1df2633a2d381cf7892976048096a3bcf814837e" alt="" width="563"><figcaption></figcaption></figure>

Часто нужно получить общее количество уникальных записей по набору списков — это легко можно сделать с помощью `lists_joint_count()` .

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

а

</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/ru/chatbot/functions/kalkulyator/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.
