# Робота з масивами та словниками

**Масив** — це структура даних, яка зберігає набір значень (так званих елементів масиву), кожен з яких має свій індекс. Вона визначається за допомогою квадратних дужок \[]. Наприклад, оператор q = \[] означає, що змінна q містить порожній масив. Якщо q = \[2, 5, 7, 4, 9], тоді масив містить 5 елементів — це його довжина. Індекси елементів, які позначають їхні позиції в масиві, починаються з 0. Отже, індекс елемента "2" дорівнює 0, а індекс елемента "4" у нашому масиві — 3.

<figure><img src="/files/21704f44cb9e869ba42064deab68ce9f0bdf12ab" alt=""><figcaption></figcaption></figure>

**Приклад:** array=\[1,2,3,4] або array1=\["mother","father","son","daughter"]

**Приклад доступу до елемента масиву:** array\[1] (повертає значення 2)

**Словник** — це структура даних, що представляє спеціально організований набір елементів для зберігання даних. Усі дані зберігаються у вигляді пар ключ-значення. Доступ до елементів даних здійснюється за допомогою ключа. Ключ завжди має бути унікальним у межах одного словника, тоді як дані (значення) за потреби можуть повторюватися.

**Приклад:** {"SLU":12345,"Name":"Men's t-shirt, white","Size":50,"Price":1000}

**Приклад доступу до елемента масиву:** dictionary\["Array"] (повертає значення 12345)

І масиви, і словники можуть мати складні або вкладені структури — тобто вони можуть містити одне одного. Наприклад:

масив словників: products=\[{"SKU":12345,"Name":"Men's t-shirt, white","Size":50,"Price":1000},{"SKU":12346,"Name":"Men's t-shirt, white","Size":52,"Price":1000}]

&#x20;Вираз `s = {}` означає, що змінна s містить словник, який не містить елементів. У нього можна помістити пару ключ-значення або навіть кілька: `s = {"key1":"value1", "key2":"value2","key3":"value3"}` Кожен ключ і значення беруться в лапки, між ключем і значенням ставиться двокрапка, а пари ключ-значення розділяються комами.

Масиви та словники можуть бути вкладеними. Розгляньмо приклад:

`rainbow = [red, orange, yellow, green, light blue, blue, purple]` - це масив.

Якщо ми напишемо&#x20;

rainbow = {"every":"red","hunter":"orange","wants":" yellow","know":"green","where":"light blue","sits":"blue","pheasant":"purple"}

\- отримаємо словник

Якщо уважно придивитися до веселки, можна побачити, наприклад, що блакитний колір є складнішим і складається з бірюзового, світло-блакитного та темно-блакитного. Запишемо: `light blue = [turquoise,light blue, dark blue]`. Тепер вкладемо наш масив “blue” у словник “rainbow”:

rainbow = {"first\_color":"<mark style="background-color:yellow;">red</mark>","<mark style="background-color:blue;">second\_color</mark>":"<mark style="background-color:yellow;">orange</mark>","<mark style="background-color:blue;">third\_color</mark>":"<mark style="background-color:yellow;">yellow</mark>","<mark style="background-color:blue;">forth\_color</mark>":"<mark style="background-color:yellow;">green</mark>","<mark style="background-color:blue;">sixth\_color</mark>":"<mark style="background-color:yellow;">blue</mark>","<mark style="background-color:blue;">last\_color</mark>":"<mark style="background-color:yellow;">purple</mark>"}

То як же вказати адресу елемента, наприклад “turquoise”?&#x20;

А в масивах адресація здійснюється за <mark style="background-color:yellow;">**індексом**</mark>, тож адреса елемента "turquoise" — 0.

&#x20;Підсумуємо це: **\["where"]\[0]** - це адреса елемента "turquoise".

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

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

## Як працювати з адресацією (JSON)

Під час отримання відповідей від сторонніх сервісів через API ми найчастіше отримуємо JSON, який є словником. Дуже часто нам потрібно зберегти певне значення з цього словника у змінну.

Найкращий спосіб зрозуміти принцип адресації в JSON — розглянути приклад:<mark style="background-color:green;">{</mark><mark style="background-color:orange;">"suggestions"</mark>: <mark style="background-color:red;">\[{"value": "Dirham", "unrestricted\_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]</mark><mark style="background-color:green;">}</mark>&#x20;

Тут маємо словник, що містить одну пару ключ-значення **suggestions** - ключ для масиву: `[{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]`

Значення **suggestions** ключа — це масив лише з одним елементом — словником:  `{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}` **suggestions|0** - це ключ до першого (і єдиного) елемента масиву.`{"value": "Dirham", "unrestricted_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}`

**suggestions|0|value** - це ключ до значення "Belarusian ruble"

{"suggestions": \[{"<mark style="background-color:orange;">value</mark>": "Dirham", "unrestricted\_value": "Dirham", "data": {"code": "784", "strcode": "AED", "name": "Dirham", "country": "UAE"}}]}

Найдовший шлях ключа в цьому JSON такий: **suggestions|0|data|strcode** - це ключ для AED

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

{"suggestions": \[{"value": "Dirham", "unrestricted\_value": "Dirham", "data": {"code": "784", "<mark style="background-color:orange;">strcode</mark>": "<mark style="background-color:red;">AED</mark>", "name": "Dirham", "country": "UAE"}}]}

Ключі розділяються вертикальною рискою. Якщо JSON містить масив, доступ до його елементів здійснюється за індексом, починаючи з 0, і також записується через вертикальну риску. Індексування масиву починається з 0.

Під час адресації числа обробляються так само, як і рядки, і навпаки. Наприклад, '6' і 6 вважаються рівними.

Окрім відповідей API, масиви та словники також можна використовувати для зручного зберігання даних.

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

Інший приклад — коли потрібно зберігати кількість очок для кожного гравця в командній грі. Для цього можна використати словник, де ключами будуть ID користувачів, а значеннями — їхні очки.

Іноді потрібно змінити масив або словник. Функції, описані в цій статті, призначені саме для цього. Більшість методів, наведених нижче, працюють і з масивами, і зі словниками.

## Робота з масивами

### Як створити масив

Створення масиву — оголошення масиву

**array\_name = \[]**

### Як очистити масив

Очищення масиву по суті те саме, що й оголошення порожнього масиву:

**array\_name = \[]**

### Як отримати доступ до елемента масиву

<details>

<summary>Опис</summary>

**name\[index] -** доступ до елемента масиву за індексом або за значенням

</details>

<details>

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

Розгляньмо кілька прикладів роботи з масивами:

**Приклад доступу до елемента масиву за його індексом:**

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

#### Приклад отримання останнього елемента масиву:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
/*Доступ за індексом*/
arrayI = [1, "2", 3, 4, 5]
k=arrayI[3]
/*Доступ за індексом із вкладеного масиву*/
arrayV = [[1, "2", 4, 5], "2", 3, 4, 5]
v=arrayV[0][1]

/*Приклад отримання останнього елемента*/
array = [1, "2", 3, 4, 5]
/*Отримання останнього елемента масиву*/
last = array[-1]
```

</details>

### Як замінити значення в масиві

<details>

<summary>Опис</summary>

**name\[index] =** **value** - заміна елемента масиву за заданим індексом

</details>

<details>

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

**Приклад:**

Щоб замінити значення певного елемента масиву, використовуйте такий синтаксис: *array\_name\[index] = value*

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

Відповідь:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
array = [1, "2", 3, 4, 5]

/*Заміна в масиві\словнику*/
array[2] = 888

/*Додавання в словник   dicts['key'] = 'VVVVVVVVVVV'*/
dicts['m']=new

/*Заміна в масиві\словнику на число*/
array[3] = int('888')
dicts['a'] = int('555')
```

</details>

### Як перевірити, чи є елемент у масиві

<details>

<summary>Опис</summary>

**in\_array(mass, value)** - щоб перевірити, чи існує елемент у масиві.

**Параметри:** \ <mark style="color:red;">!</mark> **mass -** масив \ <mark style="color:red;">!</mark> **value -** значення для пошуку

Повертає True або False залежно від того, знайдено значення чи ні.

</details>

<details>

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

Приклад:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = ["Mike", "Peter", "Helen"] 
q = if(in_array(s, 'Ann'), 'Found', 'Another string')
```

</details>

### Як дізнатися довжину масиву

<details>

<summary>Опис</summary>

**arr\_len(mass)** - щоб дізнатися довжину масиву

Параметр:\ <mark style="color:red;">!</mark> **mass -**  *масив*&#x20;

Результат: Повертає число — довжину масиву.

{% hint style="warning" %}
Будьте уважні, передаючи параметри у функцію! Якщо викликати без параметрів, вона повертає 0; якщо параметр не є ні масивом, ні словником, вона повертає -1.
{% endhint %}

</details>

<details>

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

Приклад використання:

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

Результат:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = ["Mike", "Peter", "Helen"] 
q = if(arr_len(s) > 5, 'Group is full', 'Join our team!')
```

</details>

### Як вставити елемент у кінець масиву?

<details>

<summary>Опис</summary>

**append(mass, element, priznak)** - щоб вставити елемент у кінець масиву.&#x20;

Параметри:

<mark style="color:red;">!</mark> **mass -** масив\ <mark style="color:red;">!</mark> **element -** елемент для вставлення\
**priznak** - прапорець, що вказує, чи це масив або словник

Повертає масив із доданим у кінець значенням. Щоб оновити початковий масив, використовуйте присвоєння: **mass = append(mass, element, priznak)**&#x20;

{% hint style="warning" %}
&#x20;За замовчуванням дані вставляються як рядки. **Якщо потрібно вставити масив або словник, передайте додатковий параметр True**. Це означає, що ви вставляєте JSON.
{% endhint %}

</details>

<details>

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

Приклад використання:

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

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

Приклад додавання до масиву та видалення з нього:

<div data-with-frame="true"><figure><img src="/files/83eeea12f6d8ce164973f1cba262d50c087b30a3" alt="" width="563"><figcaption><p>У цьому прикладі елемент додається до масиву project.vibpzdr, а значення <code>p</code> видаляється з масиву project.pzdr</p></figcaption></figure></div>

Приклад створення масиву з вкладеними масивами:

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

Результат виконання функції:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = ["Mike", "Peter", "Helen"]
q = append(s, 'Max')
```

</details>

### Як вставити значення у певну позицію масиву

<details>

<summary>Опис</summary>

**insert(mass, index, value, priznak)** - щоб вставити елемент у певну позицію масиву.

Параметри: \ <mark style="color:red;">!</mark> **mass -** масив\ <mark style="color:red;">!</mark> **index -** позиція вставлення\ <mark style="color:red;">!</mark> **value -** value\
**indicator** - індикатор додавання до масиву або словника.

Результат:\
Повертає масив із доданим у вказану позицію значенням. Іншими словами, щоб додати значення до того самого масиву, використовуйте команду в такому вигляді:  **mass = insert(mass, index, value, indicator)**&#x20;

{% hint style="warning" %}
За замовчуванням дані вставляються як рядки. **Якщо потрібно вставити масив або словник, передайте додатковий параметр True**. Це означає, що ви вставляєте JSON..
{% endhint %}

</details>

<details>

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

Приклад:

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

Результат:

Розгляньмо складніший приклад — додавання словника t до масиву s:

<figure><img src="/files/a3bd13d1052cc19b8c27185adf21c85f95cf642f" alt=""><figcaption></figcaption></figure>

У функції ми вказали, що хочемо додати словник у позицію 1. Розгляньмо результат:

<figure><img src="/files/c4cd87a12ea0117ea708eebbacc265085fa5354b" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = ["Mike", "Peter", "Helen"]
q = insert(s, 1, 'Max')
```

</details>

### Як видалити елемент з масиву

del() | del | remove()

<details>

<summary>Опис</summary>

<mark style="background-color:blue;">**За індексом**</mark>

**del(mass, key)** - видаляє елемент з масиву за його індексом.&#x20;

Параметри: \ <mark style="color:red;">!</mark> **mass -** ім’я масиву;\ <mark style="color:red;">!</mark> **key -** індекс значення, яке потрібно видалити

Повертає новий масив із видаленим елементом; початковий масив залишається без змін. Щоб видалити та оновити той самий масив, використовуйте команду на кшталт: \
**mass = del(mass, key)**

{% hint style="warning" %}
Якщо ваш масив містить числа і ви хочете видалити елемент за значенням, використовуйте функцію remove().&#x20;
{% endhint %}

**del name\['index']** - видалення значення з масиву за індексом

Параметри: \ <mark style="color:red;">!</mark> **name-** ім’я масиву;\ <mark style="color:red;">!</mark> **index-** індекс значення, яке потрібно видалити

<mark style="background-color:blue;">За значенням</mark>

**remove(mass, value)** - щоб видалити значення з *масив*.&#x20;

Параметри: \ <mark style="color:red;">!</mark> **mass -** ім’я масиву; \ <mark style="color:red;">!</mark> **value -** значення, яке потрібно видалити з масиву

Результат:\
Повертає змінений масив, залишаючи початковий масив без змін. Щоб видалити елемент та оновити той самий масив, використовуйте команду в такому вигляді:\
**mass = remove(mass, key)**

</details>

<details>

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

Приклад видалення елемента за індексом:

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

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

Приклад видалення елемента масиву за його значенням:

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

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
/*Видалення елемента масиву за його індексом:*/
array = ["1",2, 3, "4"]
del array['1']

array1 = ["1",2, 3, "4"]
array1=del(array1,0)


/*Видалення елемента масиву за його значенням:*/
array = ["1",2, 3, "4"]
array=remove(array, '4') 

array1 = ["1",2, 3, "4"]
array1=remove(array1, 2) 
```

</details>

### Як отримати позицію елемента в масиві

<details>

<summary>Опис</summary>

**index(mass, value)**

Параметри: \ <mark style="color:red;">**!**</mark> **mass -** ім’я масиву \ <mark style="color:red;">**!**</mark>**&#x20;value -** значення, позицію якого потрібно визначити.

Якщо елемента немає в масиві, функція поверне -1.

</details>

<details>

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

Приклад визначення позиції елемента в масиві:

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

Розгляньмо результат детальніше:

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

Як бачимо, оскільки числа 5 немає в масиві, функція повернула -1.

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
array = ["1",2, 3, "4"]
search1=index(array,"1")
search2=index(array,5)
```

</details>

### Як перетворити масив на текст, зручний для людини

<details>

<summary>Опис</summary>

**massive\_to\_text(massive, header, numbered,delimiter1,delimiter2)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;massive** – масив, який потрібно відобразити,\
**header** – заголовок, який буде показано на початку виводу\
**numbered** – якщо передано будь-яке значення, елементи масиву будуть пронумеровані\
**delimiter1** – символ, що ставиться в кінці рядка кожного елемента (за замовчуванням ‘;’),\
**delimiter2** – символ, що використовується після номера елемента при увімкненому нумеруванні (за замовчуванням ‘)’ )

</details>

<details>

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

Простий приклад:

У результаті масив буде відображено як нумерований список:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
Array1 = [1, 2, 3, "a", "b", "c"] 
text = array_to_text(Array1, 'title', 1) 
```

</details>

### Як виключити один масив з іншого

<details>

<summary>Опис</summary>

**except\_arr(mas1, mas2)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;mas1** - масив, з якого елементи буде виключено,\ <mark style="color:red;">**!**</mark>**&#x20;mas2** - масив, що містить елементи для виключення

</details>

<details>

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

Розгляньмо приклад:

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

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s1 = [1, 2, 3]
s2 = [2, 3]
s3 = except_arr(s1, s2)
```

</details>

### Як знайти перетин масивів

<details>

<summary>Опис</summary>

**cross\_arr(mas1, mas2)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;mas1** - масив, у якому виконується пошук\ <mark style="color:red;">**!**</mark>**&#x20;mas2** - масив, що містить елементи, які потрібно знайти

</details>

<details>

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

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

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s1 = [1, 2, 3]
s2 = [2, 3]
s3 = cross_arr(s1, s2)

mas1 = ["didn't", "except,", "that", "everything", "is", "so", "simple.", "thanks"]
mas2 = ["everything", "thanks"]
mas3 = cross_arr(mas1, mas2)
```

</details>

### **Як об’єднувати масиви**

<details>

<summary>Опис</summary>

Немає вбудованої функції спеціально для об’єднання масивів, але це легко зробити:

Щоб об’єднати масиви, виконайте конкатенацію рядків, а потім замініть ']\[' на кому ','

</details>

<details>

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

Це приклад у полі Calculator

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

Це приклад роботи бота

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
a = [1,2,3,4] 
b = [5,6,7] 
sum = a + b 
answer = replace(sum, '][', ',') 
```

</details>

### Як підсумувати елементи масиву

<details>

<summary>Опис</summary>

**sum\_array(array)**

**Параметри:**

**масив** - масив, елементи якого потрібно підсумувати

{% hint style="warning" %} <mark style="color:red;">**Увага!**</mark>**&#x20;Функція працює з масивами певного формату.**

Прийнятні формати: - \[1,2,3,4] або ‘\[1,2,3,4]’. \
Якщо масив містить числа, представлені як рядки, їх потрібно брати в подвійні лапки — наприклад, \[1,2,3,”-4”].  \
Якщо масив містить алфавітні рядки, обчислення завершиться помилкою.

Приклад неправильного використання:\
mas = \[1,2,3,"a"] \
result = sum\_array(mas)

Це призведе до помилки: **масив містить непідтримувані елементи**
{% endhint %}

</details>

<details>

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

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

Результат:

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

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
mas = [1,2,3,4] 
result = sum_array(mas) 
```

</details>

### Як перемішати елементи масиву

<details>

<summary>Опис</summary>

**shuffle\_massive(massive**

Параметри:

**massive** - масив, елементи якого потрібно перемішати.

</details>

<details>

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

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

Результати виконання функції:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
Massive1 = [1, 2, 3, "a", "b", "c"]
Massive2 = shuffle_massive(Massive1) 
```

</details>

### Для сортування масивів і словників&#x20;

sort() | sort\_by\_value()

<details>

<summary>Опис</summary>

<mark style="background-color:blue;">**Сортування в масиві або словнику**</mark>&#x20;

**sort(mass, b)** - сортує масив за значенням, а словник — за ключем

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;mass** - масив/словник\
**b** - порядок сортування (False – зростанням (за замовчуванням), True – спаданням)

<mark style="background-color:blue;">**Сортування словника за його значенням**</mark>

**sort\_by\_value(dict, b) -** сортує словник за значеннями.

Параметри:\ <mark style="color:red;">**!**</mark>**&#x20;dict**- словник\
**b** - порядок сортування (False – зростанням (за замовчуванням), True – спаданням)

</details>

<details>

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

Приклад сортування масиву за спаданням і словника за зростанням:

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

<div data-with-frame="true"><figure><img src="/files/592445bc00a42e9367a678f5ab40dea7940708d8" alt="" width="375"><figcaption><p>результат сортування</p></figcaption></figure></div>

Сортування словника за значеннями:

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

<figure><img src="/files/b2c5bb8b85348fe1dfa39f6c3de5d913701115a4" alt="" width="375"><figcaption><p>результат сортування</p></figcaption></figure>

</details>

### Перетворення масиву/словника на кнопки

**tools\_make\_button\_str\_checker() | tools\_check\_user\_input()**

<details>

<summary>Опис</summary>

<mark style="background-color:blue;">**Перетворення масиву/словника на кнопки**</mark>

tools\_make\_button\_str\_checker(values\_list, key, in\_line, button\_type, checker\_with\_numbers)

Параметри:

<mark style="color:red;">**!**</mark> values\_list - масив рядків або словників, дані яких використовуватимуться для побудови клавіатури або нумерованого списку

key - ключ, за яким здійснюватиметься вибір з масиву словників

in\_line - кількість кнопок у рядку (за замовчуванням: 1)

button\_type - тип кнопок (за замовчуванням: reply keyboard). \
Можливі значення:\
0 - reply keyboard,\
1 - inline keyboard (кнопки в тексті)

checker\_with\_numbers - чи додавати номери кнопок до масиву "checker". \
Можливі значення:\
0 - не додавати номери, \
1 - додавати номери (за замовчуванням: 1 – додавати номери)

Результат функції — словник такого вигляду:

{"**numbered\_list**":"1. T-shirts\n2. Shorts\n3. Socks\n4. Caps\n","**buttons**":\[{"type":"inline","text":"T-shirts","line":0,"index\_in\_line":0},{"type":"inline","text":"Shorts","line":0,"index\_in\_line":1},{"type":"inline","text":"Socks","line":1,"index\_in\_line":0},{"type":"inline","text":"Caps","line":1,"index\_in\_line":1}],"**checker**":"T-shirts;1;Shorts;2;Socks;3;Caps;4;"}

Потім значення словника можна вставити у поля конструктора:

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

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

<mark style="background-color:blue;">**Отримання значення словника на основі вибору клієнта**</mark>&#x20;

**tools\_check\_user\_input(values\_list, user\_input, key, return\_key)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;values\_list** - масив рядків або словників, дані яких використовуватимуться для побудови клавіатури або нумерованого списку\ <mark style="color:green;">Приклад словника:</mark> \[{"text":"T-shirts","price":100},{"text":"Shorts","price":150},{"text":"Socks","price":20},{"text":"Caps","price":50}]\ <mark style="color:red;">**!**</mark>**&#x20;user\_input** - значення, введене користувачем, одне зі значень у values\_list\ <mark style="color:green;">Приклад значення:</mark> Caps\
**key** - ключ, що використовується для вибору з масиву словників values\_list\ <mark style="color:green;">Приклад ключа:</mark> text\
**return\_key** - значення, що повертається для вказаного ключа з values\_list\ <mark style="color:green;">Приклад значення, що повертається:</mark> price

</details>

<details>

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

Розберімо використання функції на прикладі кошика для покупок:

1.Визначте масив і перетворіть його на нумерований список, кнопки та список можливих значень (для месенджерів без кнопок) за допомогою функції tools\_make\_button\_str\_checker().

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

<div data-with-frame="true"><figure><img src="/files/0671b1d01953ee4095dcf463bb29c44865f520cc" alt="" width="375"><figcaption><p>Результат використання <strong>tools_make_button_str_checker()</strong> функції</p></figcaption></figure></div>

2.Використайте отримані значення buttons і numbered\_list, щоб увімкнути вибір товару:

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

3.Використайте чекер списку можливих значень, щоб перевірити введення клієнта:

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

4.Нарешті, відобразіть клієнту ціну вибраного товару. Зручно це робити за допомогою функції tools\_check\_user\_input()

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
list = [{"text":"T-shirts","price":100},{"text":"Shorts","price":150},{"text":"Socks","price":20},{"text":"Caps","price":50}]
res = tools_make_button_str_checker(list, "text", "2", "1")
numbered_list = res['numbered_list']
buttons = res['buttons']
checker = res['checker']

res_check = tools_check_user_input(list, user_input, 'text', 'price')
```

</details>

### Вибір даних з масиву

<details>

<summary>Опис</summary>

**array\_slice(array, start\_index, end\_index)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;масив** - масив \ <mark style="color:red;">**!**</mark>**&#x20;start\_index** - початок фрагмента \
**end\_index** - кінець фрагмента (за замовчуванням: до кінця)

</details>

<details>

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

Виберімо підмасив, починаючи з 1-го елемента:

<div data-with-frame="true"><figure><img src="/files/963402bf42772bcfbd610f7ba283216a22b50aaa" alt="" width="563"><figcaption><p>Приклад використання array_slice()</p></figcaption></figure></div>

&#x20;res буде \["Shorts", "Socks", "Caps"]&#x20;

Ще один приклад вибору підмасиву з 0-го до 2-го елемента масиву:

<div data-with-frame="true"><figure><img src="/files/6946abea7166935d5a1487db74ff9ebd03e44d86" alt="" width="563"><figcaption><p>Приклад використання array_slice()</p></figcaption></figure></div>

&#x20;res буде \["T-shirts", "Shorts"]

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
list = ["T-shirts", "Shorts", "Socks", "Caps"] 
res = array_slice(list, 1)

res = array_slice(list, 0, 2)
```

</details>

### Розпакування елементів масиву

<details>

<summary>Функція</summary>

unpack\_list(array, var\_name) - цей метод проходить по масиву та створює окрему змінну для кожного елемента масиву з іменами на кшталт var1, var2, var3 тощо.&#x20;

<mark style="color:red;">**!**</mark> array - обов’язковий параметр, масив елементів

var\_name - необов’язковий параметр, рядок. Якщо вказано, він використовується для іменування розпакованих елементів. Приклади:

Якщо var\_name вказано, імена змінних формуються з використанням var\_name

var\_name має відповідати правилам іменування змінних.

</details>

<details>

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

**Приклад 1:**

`array1 = ["one", "two", "three"]`

`ans1 = unpack_list(array1)`

**Результат** - створені змінні типу:

`var1 = 'one'`

`var2 = 'two'`

`var3 = 'three'`

**Приклад 2:**

`array2 = ["one", "two", "three"]`

`var_name = 'custom'`

`ans2 = unpack_list(array2, var_name)`

**Результат -** створені змінні типу:

`custom1 = 'one'`

`custom2 = 'two'`

`custom3 = 'three'`

</details>

### Як повернути список без повторюваних елементів

<details>

<summary>Опис</summary>

remove\_duplicates(array) - повертає список без повторюваних елементів.

<mark style="color:red;">**!**</mark> array - обов’язковий параметр. Початковий список елементів із дублікатами.

</details>

<details>

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

Приклад:

arr = \[1, 2, 5, 1, 5, 3]

new\_arr = remove\_duplicates(arr)

Результат - список \[1, 2, 5, 3] буде присвоєно змінній new\_arr.

</details>

### Як створити словник

<details>

<summary>Опис</summary>

Створення словника — оголошення словника

**name\_dictionary = {}**

</details>

### Як очистити словник

<details>

<summary>Опис</summary>

Очищення — це не що інше, як оголошення порожнього словника.

**name\_dictionary = {}**

</details>

### Як отримати значення словника за ключем

<details>

<summary>Опис</summary>

**name\[key] -** отримання елемента словника за ключем

</details>

<details>

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

**Приклад роботи зі словником:**

&#x20;У цьому конкретному випадку ми звертаємося до значення за ключем "a". Щоб отримати значення зі словника за певним ключем, використовуйте такий формат: name\_dictionary\["key"]

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

Відповідь:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
dicts = {"a": "11", "d": "hi"}
/*отримання зі словника*/
aa = dicts["a"]
```

</details>

### Як отримати список ключів зі словника

<details>

<summary>Опис</summary>

**dict\_keys\_to\_array(data)** - щоб отримати список ключів словника даних

</details>

<details>

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

**Приклад:** Отримати список усіх ключів словника

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

**Відповідь:**&#x20;

<div data-with-frame="true"><figure><img src="/files/6ee36df9640ba5671716cf2ac2b830725f76672f" alt=""><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
v={"A1":"orange","A2":"apricot","A3":"tangerine","A4":"apple","A5":"pear","A6":"kiwi","A7":"banana","A8":"peach"} 
key= dict_keys_to_array(v)
```

</details>

### Як отримати список значень із словника

<details>

<summary>Опис</summary>

**dict\_values\_to\_array(data)** - щоб отримати список значень із словника

</details>

<details>

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

Приклад:

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

Відповідь:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
v={"A1":"orange","A2":"apricot","A3":"tangerine","A4":"apple","A5":"pear","A6":"kiwi","A7":"banana","A8":"peach"}
value= dict_values_to_array(v)
```

</details>

### Як отримати значення зі списку словників за вказаним ключем

<details>

<summary>Опис</summary>

**get\_values\_by\_key(data, key)** - дозволяє отримати значення зі списку словників за вказаним ключем. Повертає список значень.

</details>

<details>

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

Приклад: Отримання значень зі списку словників за ключем

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

Відповідь:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
data = [{"Product": "Product№1", "Price": 1500}, {"Product": "Product№2", "Price": 6000}]
key = "Product"
result = get_values_by_key(data, key)
```

</details>

### Як замінити значення у словнику&#x20;

<details>

<summary>Опис</summary>

nam&#x65;**\['key'] = value** - заміна значення елемента словника за вказаним ключем. Якщо вказано неіснуючий ключ, буде додано новий елемент словника.

</details>

<details>

<summary>Опис</summary>

**Приклад:**

Щоб замінити значення певного елемента масиву, напишіть присвоєння на кшталт arra&#x79;*\_name\[index] = value або dictionary\_name*\[key] = value

<div data-with-frame="true"><figure><img src="/files/7716e4b408356e97ac44f4ab8b765c206262195a" alt=""><figcaption></figcaption></figure></div>

Відповідь:&#x20;

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
dicts = {"a": "11", "d": "hi"}

/*Замінити у словнику*/
dicts['d'] = AAAAA

/*Додати у словнику   dicts['key'] = 'VVVVVVVVVVV'*/
dicts['m']=new

/*Замінити у словнику на число*/
dicts['a'] = int('555')
```

</details>

### Як додати значення до словника

<details>

<summary>Опис</summary>

**dictionary\_name*****\['key'] = 'value'** -* додавання нового значення до словника.&#x20;

{% hint style="warning" %}
Якщо ключа раніше не існувало, буде додано нову пару ключ–значення; інакше значення для вказаного ключа буде замінено.
{% endhint %}

</details>

<details>

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

Це приклад коду в полі калькулятора

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

Відповідь

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
/*додавання нового значення до словника dicts['key'] = 'VVVVVVVVVVV'*/
dicts['m']=new
```

</details>

### Як перевірити, чи існує ключ у словнику

<details>

<summary>Опис</summary>

**exist\_key(mass, key)** - щоб перевірити, чи існує ключ у словнику.

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

**mass -** dictionary&#x20;

**key -** ключ для пошуку

Повертає True або False залежно від того, чи було знайдено ключ.

</details>

<details>

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

Приклад використання:

<div data-with-frame="true"><figure><img src="/files/990f48267021c8f797680473c6fd69e9d0baa5a0" alt=""><figcaption></figcaption></figure></div>

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = {"1": 123, "2": 234, "q": {"w": "e"}} 
q = if(exist_key(s, 'q'), 'Знайдено', 'Інший рядок')
```

</details>

### Як перевірити позицію ключа у словнику

<details>

<summary>Опис</summary>

**key\_index(mass, key)** - щоб перевірити позицію ключа у словнику.

**Параметри:** \
**mass - словник**  \
**key -** Ключ для пошуку.

{% hint style="info" %}
Позиція у словнику відлічується від 0. Отже, перший елемент — 0, другий елемент — 1 і так далі.
{% endhint %}

</details>

<details>

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

Приклад використання:

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

*Результат:*

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
s = {"1": 123, "2": 234, "q": {"w": "e"}} 
q = key_index(s, 'q')
```

</details>

### Як отримати кількість елементів у словнику

<details>

<summary>Опис</summary>

**arr\_len(mass)** - щоб визначити довжину словника.&#x20;

Параметр:\
**mass -** *dictionary*&#x20;

Результат: Повертає число — довжину словника.

{% hint style="warning" %}
Будьте уважні Під час передавання параметра у функцію: якщо функцію викликано без параметрів, вона повертає 0; якщо параметр не є списком або словником, вона повертає -1.
{% endhint %}

</details>

<details>

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

Приклад використання:

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

Відповідь:

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

</details>

### Як видалити елемент зі словника

<details>

<summary>Опис</summary>

За індексом або ключем

**del(mass, key)** - щоб видалити елемент зі списку за індексом або зі словника за ключем.\
Вона приймає два параметри: список/словник і індекс/ключ для видалення.\
Повертає змінений словник або список без зміни оригінального об’єкта.

{% hint style="warning" %}
Якщо значення у списку або словнику є числами, використовуйте функцію remove() для видалення елемента.
{% endhint %}

</details>

<details>

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

Приклад зі словником

<div data-with-frame="true"><figure><img src="/files/801dee2c22d7c4c041060c2cb165515113a2c189" alt=""><figcaption></figcaption></figure></div>

Результат

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

Приклад із масивом

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

Результат

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

Приклад зі словником

`s={"1":123, "2":234, "q":{"w":"e"}}`<br>

`q=del(s,'q')`

Приклад із масивом

`s=["John", "Ann", "Sophie"]`\ <br>

`q=del(s, 1)`

</details>

### Як перетворити словник на зрозумілий для людини текст

<details>

<summary>Опис</summary>

**humanize(dict, delimiter, from\_i, to\_i)**&#x20;

Параметри:

**dict** - назва словника\
**delimiter** - роздільник між рядками\
**from\_i** - індекс елемента, з якого почати виведення (нумерація з 0)\
**to\_i** - індекс елемента, на якому завершити виведення (не включно)

</details>

<details>

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

Розгляньмо приклад:

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

Відповідь

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
dict = {"[id146467928|Alex]":"6","[id145255525|Маx]":"20"}
r = humanize(dict, ': ')
```

</details>

### Для сортування словників&#x20;

sort() | sort\_by\_value()

<details>

<summary>Опис</summary>

<mark style="background-color:blue;">**Сортування словника**</mark>

**sort(dict, b)** - Сортує список за значенням, а словник — за ключем

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;dict**- словник

**b** - напрям сортування (False — за замовчуванням за зростанням, True — за спаданням)

<mark style="background-color:blue;">**Сортування словника за значенням**</mark>

**sort\_by\_value(dict, b) -** Сортування словника за значеннями.

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;dict**- словник

**b** - напрям сортування (False — за замовчуванням за зростанням, True — за спаданням)

</details>

<details>

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

Приклад: сортування списку у спадному порядку та словника у зростаючому порядку:

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

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

Сортування словника за його значеннями:

<div data-with-frame="true"><figure><img src="/files/56906a2255d339730650d38bf3190cce2ced4ee5" alt=""><figcaption></figcaption></figure></div>

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

Приклад: сортування списку у спадному порядку та словника у зростаючому порядку:

`array1=[5,4,0,6,3,0]`<br>

`array1=sort(array1, True)`

`dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}`

`dict=sort(dict)`

Сортування словника за його значеннями:

`dict={"Ann":5, "John":4, "Sophie":0, "Alex":6, "Kate":3, "Harry":0}`&#x20;

`dict=sort_by_value(dict)`

</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/arrays.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.
