Перейти до змісту

Список

Тип даних Список дозволяє зберігати послідовність об'єктів не залежно від їхнього типу. Оголошення списку в Барвінку має наступний синтаксис:

Список(елементи...)

У Барвінку змінні є посиланнями на об'єкти, тому при присвоєнні списку іншій змінній не створюється новий список, а передається посилання на той самий. Приклад:

списки.бр
1
2
3
4
5
6
а = Список(1)
друкр("а: " + а)
б = а
б.додати(2)
друкр("а: " + а)
друкр("б: " + б)
Вивід:
$ барвінок списки.бр
 а: [1]
 а: [1, 2]
 б: [1, 2]

Ітератор списку

Список реалізовує ітератор, який обходить його елементи зліва направо.

Оператори

оператор +

конкатенує списки

а = Список(1, 2, 3)
б = Список(4, 5, 6)
друкр(а + б) ! Виведе в консоль "[1, 2, 3, 4, 5, 6]"

оператор рівно та нерівно

порівнює списки поелементно

Список(1, 2, 3) рівно Список(1, 2, 3) ! істина
Список(1, 2, 3, 4) рівно Список(1, 2, 3) ! хиба

Атрибути

  • Список.видалити(обєкт) - Метод видаляє перше входження об'єкта в списку та повертає логічне значення: істину, якщо об'єкт був знайдений та видалений, в іншому випадку хибу.
  • Список.видалитиВсі(обєкт) - Метод видаляє всі входження об'єкта в списку та повертає логічне значення: істину, якщо хоч один елемент був видалений, в іншому випадку хибу.
  • Список.вставити(індекс, елемент) - Приймає два параметри, індекс - число, елемент - об'єкт будь якого типу. Вставляє елемент по індексу в список, а всі елементи після нього просуваються далі. Викидає помилку ПомилкаІндексу, якщо індекс більший за розмір списку.
  • Список.встановити(індекс, елемент) - Приймає два параметри, індекс - число, елемент - об'єкт будь якого типу. Заміняє елемент по індексу в списку на переданий. Викидає помилку ПомилкаІндексу, якщо індекс більший за розмір списку.
  • Список.розмір() - Повертає кількість елементів в списку.
  • Список.додати(елемент) - Приймає як параметр об'єкт будь якого типу, додає його в кінець списку.
  • Список.замінити(що, чим) - Замінює всі входження об'єкта у списку на нове значення.
  • Список.знайти(обєкт) - Повертає індекс першого входження об'єкта в списку. Якщо елемента з таким індексом не існує, то поверне -1.
  • Список.копія() - Повертає поверхневу копію списку.
  • Список.кількість(обєкт) - Повертає кількість елементів в списку, які рівні переданому об'єкту.
  • Список.містить(елемент) - Перевіряє, чи список містить заданий елемент.
  • Список.обернути() - Обертає список задом наперед на місці.
  • Список.отримати(індекс) - Повертає елемент зі списку по індексу. Викидає помилку ПомилкаІндексу, якщо індекс більший за розмір списку.
  • Список.очистити() - Видаляє всі елементи з списку.
  • Список.витягнути(індекс) - Видаляє з списку елемент за індексом та повертає його. Викидає помилку ПомилкаІндексу, якщо індекс більший за розмір списку.
  • Список.зріз(початок, кількість=максимальнеЧисло) — Повертає новий список, що містить елементи з вихідного списку, починаючи з переданого індексу початок і охоплюючи задану кількість елементів. Якщо параметр кількість не передано, береться максимальна можлива кількість елементів від індексу початок до кінця списку. Викидає помилку ПомилкаІндексу, якщо значення параметра початок перевищує розмір списку.
  • Список.впорядкувати(заКлючем=ніц, порівняння=ніц, обернути=хиба) - Сортує список на місці. Параметр заКлючем, це предикат, який приймає один параметр, та повинен повертати об'єкт, він використовується для перетворення Шварца. Параметр порівняння, це компаратор, який повинен порівнювати два елементи зі списку. Параметр обернути приймає логічне значення, в залежності від якого обертає відсортований список.
  • Список.розширити(ітераційне) - Метод розширює список, додаючи до нього елементи з переданого ітераційного об'єкта.