Що таке списки Python і як з ними працювати?

programming
Аудіо доріжка
12704

У мовах програмування, зокрема Python, є символи, числа і класи. А є колекції, до яких належать структури даних, — масиви та списки. Якраз про останні ми і хочемо поговорити з вами сьогодні, тому що саме списки називають одними з найважливіших об'єктів у Python.

Стаття буде особливо корисною для тих, хто вже перебуває в процесі освоєння Python і в тому числі проходить наш курс "Основи Python з нуля до функціонального проекту". Ми будемо працювати з прикладами, тому розраховуємо, що у вас вже встановлено середовище розробки Python.

Що таке списки

Списки у Python— це впорядковані набори об'єктів, нумерація яких починається з 0. У списку можуть бути різні об'єкти — від цілих чисел до рядків. Крім того, у списках можуть зберігатися додаткові списки.

Кожен елемент у списку має свій номер, завдяки якому можна швидко звернутися саме до нього. Схематично це виглядає так:

image_2

Тут важливо додати, що в одному списку можуть бути дані різних типів. Наприклад, рядки та числа:

image_3

Важлива перевага списків Python — їх можна міняти буквально на ходу. Ви можете видаляти окремі елементи, додавати нові, міняти їх місцями тощо. Головне – зберігати нумерацію, щоб можна було звертатися до цих елементів. При цьому, коли ви додаєте об'єкт, Python автоматично виділяє під нього пам'ять. А коли ви видаляєте — вивільняє її.

image_4

Створення списку у Python

Давайте для кращого розуміння перейдемо до практичної частини!

Існує кілька способів створення списку Python:

 

  • Перерахування елементів у квадратних [] дужках] скобках}}

{{ }}

Виглядає це так:

image_5

Тут варто ще раз нагадати, що нумерація у списках Python починається з нуля. Тобто, якщо ви використовуєте командуprint(numbers[0]), на екран буде виведена одиниця.

{{ }}

  • Обробка об'єкта, що інтегрується, за допомогою функції list()

{{ }}

У цьому випадку список формується таким чином:

image_6

Крім іншого, можна задіяти спеціальні генератори списків, за допомогою яких ви можете застосовувати задані вирази до кожного елемента в послідовності. Наприклад, ви хочете створити список (list), в якому містяться числа від 1 до 5. Це буде виглядати так:

image_7

Як і було сказано вище, у Python можна використовувати вкладені списки. Це робиться шляхом використання квадратних дужок усередині інших квадратних дужок:

image_8

Тобто ми отримуємо об'єкт, який складається з чисел 1 та 2, а також вкладеного списку з числами 3 та 4. Нічого складного, правда? Головне – не забувати закривати всі квадратні дужки.

Операції над списками Python

Зберігання даних у списках – це зручно. Але яка у цьому практична користь для розробника? А користь у тому, що з такими списками можна здійснювати безліч різних операцій. Найбільш популярні з них ми розглянемо далі.

Вбудовані функції

У Python є 4 прості вбудовані функції, за допомогою яких можна дізнатися довжину списку, виконати його сортування, повертати мінімальне та максимальне значення. Розглянемо ці функції на прикладах!

{{ }}

  • len() - Повертає довжину списку:

image_9

  • sorted()- Повертає відсортований список:

image_10

  • min() та max()— повертають найменший та найбільший елемент зі списку:

image_11

{{ }}

До речі, є кілька способів, за допомогою яких можна автоматизувати створення списків. Наприклад, так легко можна сформувати простий список зі значеннями:

image_12

Є й складніший варіант. Наприклад, можна вказати певні умови для створення елементів:

image_13

Зрізи (slice) списку

Завдяки зрізам ви можете отримати певне підмножина значень. Наприклад, використовуючи наступний код, ви можете повернути список з елементами, починаючи з 0-індексу, але виключивши індекс 2 і вище:

image_14

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

image_15

А ось так можна вивести все, починаючи з 1 до кінця:

image_16

Методи списків Python

Для списків створено чимало методів. Розглянемо деякі з них із прикладами коду.

{{ }}

  • Index— починає пошук збігів зліва направо, після чого повертає положення елемента з значенням, що збігається:

image_17

{{ }}

  • Count— автоматично підраховує кількість збігів значення у списку. Тобто, ми говоримо саме про чисельність збігів, а не саме значення:

image_18

  • Append— дозволяє додати зазначене значення до кінця існуючого списку:

image_19

  • Sort— дозволяє автоматично відсортувати список Python. Зверніть увагу, що за умовчанням здійснюється сортування від меншого до більшого:

image_20

Однак, вам не обов'язково використовувати дефолтний метод сортування. Можна, наприклад, виконати сортування у зворотному порядку — від більшого до меншого:

image_21

  • Insert- Вставляє вказаний елемент перед заданим індексом. Потрібно лише вказати, перед яким елементом він має бути встановлений:

image_22

  • Remove— видаляє перше виявлене входження зазначеного елемента у списку. При цьому інші входження не видаляються:

image_23

  • Extend— метод схожийappend(), але має одну важливу перевагу. З його допомогою можна додавати не лише елементи, а й цілі списки:

image_24

  • Pop— видаляє елемент у заданому індексі та виводить віддалений елемент. При цьому, якщо ви не вкажете індекс, то метод видалить останній елемент:

image_25

  • Join— дозволяє перетворити список на рядок. Список Python повинен складатися з рядків, а роздільник прописують у лапках перед методом:

image_26

Головне про списки у Python

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

Для вирішення цього завдання якраз чудово і підходить робота зі списками:

image_27

Тобто, ми досить легко написали простий скрипт, який автоматизує завдання і заощаджує трохи часу. Адже це дуже примітивний приклад. Списки Python відкривають просто колосальні можливості. Але щоб ефективно працювати з ними, необхідно витратити час на вивчення теорії та практичні завдання.

Насамкінець давайте закріпимо найголовніше з нашої статті:

  1. Список Python - це масив однотипних або неоднотипних елементів, у кожного з якого є свій номер (індекс).
  2. Нумерація елементів у списках Python починається з 0, а не 1.
  3. Як «ключи» використовуються індекси типу 0, 1, 2...
  4. Можна перевизначити елементи списку.
  5. Можна додавати нові елементи до існуючого списку або видаляти їх.
  6. Списки можна вкладати до інших списків.
  7. Для списків створено безліч функцій, що дозволяють гнучко працювати з елементами та створювати скрипти різної складності.

Насамкінець хочемо дати вам невелику пораду: більше практики!

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