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

## **Створити новий список**&#x20;

create\_list()

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

**create\_list(name)** — створює новий список. Результатом є ID списку.

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;name** — назва списку. Назву вказують в одинарних лапках.
{% endtab %}

{% tab title="Приклад" %}
`list_id = create_list("registered")`

<div data-with-frame="true"><figure><img src="/files/3aef9f4e9fa4c9a80bf54053cc8efff59e8bcb00" 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/d1f8f2d69ff7f2fb9e7162dec0ec76cde0357d15" 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:red;">**!**</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:red;">**!**</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:red;">**!**</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:red;">**!**</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:red;">**!**</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:red;">**!**</mark>**&#x20;list\_id -** ID списку. Після використання всі клієнти будуть видалені із зазначеного списку.&#x20;
{% endtab %}
{% endtabs %}

## Отримати кількість клієнтів у списку

list\_size()

{% tabs %}
{% tab title="Опис" %}
**list\_size(list\_id)** — рахує загальну кількість клієнтів у списку

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

<mark style="color:red;">**!**</mark>**&#x20;list\_id**— ID списку
{% endtab %}
{% endtabs %}

## Підрахувати кількість унікальних записів клієнтів у кількох списках

lists\_joint\_count()

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

Параметри:

<mark style="color:red;">**!**</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:red;">**!**</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:red;">**!**</mark>**&#x20;list\_id** — ID списку;&#x20;

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

Повертає значення:

True - клієнт є у списку;

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

{% tab title="Приклад" %}

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

{% tab title="Приклад коду для копіювання" %}

```
/*Приклад перевірки, чи є учасник чату у списку, де перший параметр — ID списку, а другий — 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/3e90918b6ff72f33c0cdba5ef0fee7a3cbe0c5a9" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## Приклад роботи зі списками в Калькуляторі

<details>

<summary>приклад</summary>

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

<mark style="color:red;">**Важливо!**</mark> Потрібно зберегти новий ID списку, щоб використовувати його пізніше. Для цього присвойте результат функції змінній, тобто list\_id = ...

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

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

Тепер ви можете легко виконувати інші операції зі списком — перевіряти, чи є клієнт у списку, додавати, переміщувати або видаляти клієнта.

Наприклад, перевірмо, чи є клієнт у списку з ID 12333:

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

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

Дуже зручно використовувати списки під час відображення статистичних даних:

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

Часто потрібно отримати загальну кількість унікальних записів у наборі списків — це легко можна зробити за допомогою `lists_joint_count()` функцію.

<div data-with-frame="true"><figure><img src="/files/d039b529acc41977ecdc617ff354c0ca61f40f92" 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/uk/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.
