Всім привіт! Сьогодні будемо говорити про списки, а точніше, про порожні списки. Насправді, питання виглядає дуже простим, а відповідь на нього ще простіша. Буквально один рядок коду, і ви маєте відповідь на питання цієї статті. Але, враховуючи, що ви вже почали з цим розбиратися, давайте заглибимося в проблематику і зрозуміємо, чому це важливо. Сьогодні спробуємо знайти відповіді на питання: чому нам важливо перевіряти, чи порожній список, і більш детально проговоримо методи перевірки.
Декілька слів про списки і якими вони бувають
Швидко пригадаємо, що таке список. Думаю, це допоможе нам у пошуку відповіді на наші питання. Якщо академічно, то список – це об’єкт у Python, який може містити в собі набір даних різного типу. Якщо менш академічно, простими словами, то список – це об’єкт, який містить в собі інші об’єкти. Це може бути колекція дат, колекція чисел, колекція рядків і навіть колекція змішаних типів даних.
Приклади простих списків
А тепер давайте подумаємо над тим, навіщо в принципі перевіряти, чи порожній список, і чому це може бути корисним. Згадаємо про те, як ми працюємо з даними. На мою думку, списки бувають двох типів: статичні і динамічні.
Статичний список – це набір елементів, наприклад, 10 чисел, які ми створюємо і використовуємо під час виконання коду. Ці елементи не змінюються, і ми можемо з ними працювати, будучи впевненими, що вони залишаться такими, як були. Такий тип списку стабільний і надійний у використанні.
Інший тип списку – динамічні списки. Це списки, які змінюються під час виконання коду: до них додаються нові елементи, видаляються старі або вони створюються та наповнюються в процесі роботи програми. Цей тип списків цікавіший, оскільки з ним потрібно працювати обережніше. Якщо щось пропустити або не продумати, список може виявитися порожнім, і при зверненні до його елемента ми отримаємо помилку. Тому важливо перевіряти списки на пустоту, щоб бути впевненими, що код відпрацює без помилок.
Ось таку помилку зловими, якщо список пустий, а ми в ньому щось шукаємо)
Тому, якщо коротко і чесно відповісти на питання “навіщо нам перевіряти список на пустоту”, то відповідь – щоб уникнути проблем з нашим кодом. Все дуже просто. Чим більше ви врахуєте нюансів у вашому коді, тим менше часу потім потрібно буде витрачати на його виправлення. Перевірка списків на пустоту, особливо якщо ваші списки динамічні, є одним з факторів, який варто враховувати і перевіряти. А тепер перейдемо до практичних методів.
курси Junior саме для вас.
Як перевірити, чи порожній список?
Моя практика, яка включає власне написання коду і вивчення коду, написаного іншими людьми, підтверджує, що всі використовують виключно один метод перевірки списку на те, чи він порожній. Про цей метод ми поговоримо пізніше, але враховуючи, що цікаво розглядати нові підходи, я запропоную вам ще один метод. Він, на мою думку, трохи більш складний за логікою, але має абсолютне право на існування і, можливо, буде корисним для вас.
Спосіб 1: Використання функції len()
А тепер давайте проговоримо про перший метод. Перш ніж перейти до коду і подивитися, як це механічно виконується, давайте трошки зануримося в логіку процесу. Давайте подумаємо про список простою мовою. Я уявляю собі список як коробку, в якій просто лежать елементи, які ми туди поміщаємо. Якщо вас запитають, чи коробка пуста чи повна, ви дуже просто зможете відповісти, подивившись, чи є в ній якісь елементи. Ця логіка застосовується і до списків Python. Якщо список не містить елементів, він порожній. Якщо у списку є хоча б один елемент, він не порожній. Таким чином, перша і, можливо, єдина перевірка, яку ви будете завжди робити перевіряючи список на порожність – це перевірка кількості елементів. Тепер давайте розглянемо, як це втілюється на рівні коду.
Приклад використання функції len()
І ще один приклад
Як видно з першого погляду, код дуже простий, а логіка прозора. Ви використовуєте ключове слово len, що з англійській “length”, тобто “довжина”, і передаєте в нього ваш список. На виході отримуєте довжину вашого списку. На основі цієї довжини можна легко визначити, чи є список порожнім (якщо довжина списку дорівнює нулю) або наповненим (якщо довжина більша за нуль). Отже, все дуже просто і зрозуміло. А тепер до другого методу, тут складніше.
Спосіб 2: Використання ключового слова if
На мою думку, це спосіб трохи складніший, оскільки вимагає глибокого розуміння принципів роботи Python. Проте я не буду вас занурювати в це детально, оскільки це вже зовсім інша тема, і цілком можливо, що вона заслуговує на окрему статтю. Я просто розповім вам, як крок за кроком цей метод працює, і ви зможете використовувати його. Якщо ви захочете, ви завжди зможете заглибитися в цю тему детальніше самостійно.
Давайте згадаємо, що в Python є такий тип змінної, як булева змінна (boolean), яка може приймати значення True і False. Ми можемо перевірити список на цю логічність. При такій перевірці отримаємо True, якщо список містить елементи, і False, якщо він порожній. Ну що, трохи складно без прикладів? Розумію, давайте краще розглянемо декілька прикладів, щоб зрозуміти, про що мова.
Приклад використання конструкції if на перевірку наповненості списку
І ще один приклад, з ними простіше))
Ще трохи прикладів
Приклад 1: Перевірка списку користувачів
Уявімо, що ви розробляєте програму для реєстрації користувачів на веб-сайті. Вам потрібно перевірити, чи є у вас зареєстровані користувачі:
Приклад 2: Перевірка списку покупок
Інший приклад – ви створюєте програму для управління списком покупок. Ви хочете знати, чи є у вашому списку товари:
Висновок
Як я вже зазначав, тема досить проста. Це стосується як коду, де ми можемо вирішити наше питання в один рядок, так і логіки, де просто розуміємо, що для перевірки наявності елементів у списку потрібно просто порахувати їх кількість. Це все. Прості інструменти, проста логіка. Все, що залишається, – це пам’ятати, що краще уникати проблем. Якщо ви маєте справу з динамічними списками, краще перестрахуватися і додати перевірку на критичному етапі, що гарантує опрацювання списку в подальшому. Таким чином, ви уникнете потенційних проблем. Бажаю в цьому успіхів😉
Розкажіть про свій досвід роботи з порожніми списками в Python! Якщо є питання – ставте!