У цьому навчальному матеріалі ви ознайомитеся з різноманітними способами використання методів списків у Python для додавання, редагування та видалення елементів.
Списки в Python є однією з перших вбудованих структур даних, з якими ви стикаєтеся, починаючи свій шлях у програмуванні на Python. Протягом цього матеріалу ми розглянемо основи роботи зі списками, а потім детальніше вивчимо деякі корисні методи, які ви можете використовувати при роботі зі списками.
Розпочнімо наше дослідження!
Огляд списків Python
У Python список являє собою впорядкований набір елементів, які можуть належати до одного або різних типів даних. Ви можете перебирати цей набір, використовуючи цикли, наприклад, цикли for, для доступу до окремих елементів.
Як і інші ітеровані структури даних у Python, списки мають нульову індексацію та підтримують операції нарізання (slicing).
Списки є змінними (mutable) колекціями, тобто їх можна змінювати безпосередньо. Це включає в себе додавання та видалення елементів, сортування, зміну порядку на зворотний та багато іншого. Для виконання цих дій Python надає ряд вбудованих методів.
Далі ми розглянемо декілька корисних методів списків Python.
Вбудовані методи списку в Python
У цьому розділі ми вивчимо деякі корисні методи списків, демонструючи їхню роботу на прикладах коду.
Для наших прикладів ми використаємо список `pgm_langs`, який містить назви популярних мов програмування.
pgm_langs = ['Python','Go','Rust','JavaScript']
Вставка елементів за допомогою методу `insert()`
Ви можете вставити елемент у список за певним індексом, використовуючи метод `insert()`. Цей метод приймає два аргументи:
- Індекс, за яким потрібно вставити елемент.
- Елемент, який потрібно вставити.
Спробуємо вставити “Scala” в позицію з індексом 1.
pgm_langs = ['Python','Go','Rust','JavaScript'] pgm_langs.insert(1,'Scala') print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']
Додавання елемента в кінець списку за допомогою `append()`
Якщо вам потрібно додати елемент в кінець списку, ви можете скористатися методом `append()`.
Додамо рядок “Java” в кінець нашого списку.
pgm_langs.append('Java') print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']
Розширення списку за допомогою `extend()`
Метод `append()` дозволяє додавати лише один елемент за раз. Але що робити, якщо вам потрібно додати декілька елементів одразу, наприклад, у вигляді іншого списку? У цьому випадку вам допоможе метод `extend()`.
Додамо елементи списку `more_langs` до списку `pgm_langs`.
more_langs = ['C++','C#','C'] pgm_langs.extend(more_langs) print(pgm_langs) # Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']
Звичайно, можна було б додати елементи з `more_langs` за допомогою циклу `for` та методу `append()`, але це було б більш багатослівно. Метод `extend()` пропонує більш лаконічний підхід.
for lang in more_langs: pgm_langs.append(lang)
Зміна порядку елементів на зворотний за допомогою `reverse()`
Щоб змінити порядок елементів у списку на зворотний, ви можете використати метод `reverse()`.
Подивимося, як зміниться наш список `pgm_langs`.
pgm_langs.reverse() print(pgm_langs) # Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']
Сортування списку за допомогою `sort()`
Метод `sort()` дозволяє відсортувати список на місці. Оскільки `pgm_langs` є списком рядків, сортування відбувається в алфавітному порядку.
pgm_langs.sort() print(pgm_langs) # Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']
Щоб відсортувати список у зворотному алфавітному порядку, встановіть параметр `reverse` у `True` при виклику методу `sort()`.
pgm_langs.sort(reverse=True) print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
Детальніше про сортування списків у Python.
Створення поверхневої копії списку за допомогою `copy()`
Іноді потрібно змінити копію списку, не змінюючи оригінал. Метод `copy()` повертає поверхневу копію списку Python.
Створимо копію списку `pgm_langs` під назвою `pgm_langs_copy`. Змінимо перший елемент у копії на “Haskell” та виведемо результат.
pgm_langs_copy = pgm_langs.copy() pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy) # Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
Ми бачимо, що список `pgm_langs` залишився незмінним. Отже, створення поверхневої копії та її зміна не впливає на оригінальний список.
print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
Отримання кількості входжень елемента за допомогою `count()`
Метод `count()` повертає кількість разів, коли певний елемент зустрічається в списку.
У списку `pgm_langs` усі елементи зустрічаються по одному разу. Тому, коли ми викликаємо `count(‘Go’)`, ми отримуємо `1`.
print(pgm_langs.count('Go')) # Output: 1
Метод `count()` є корисним інструментом для виявлення та видалення дублікатів зі списків Python.
Отримання індексу елемента за допомогою `index()`
Щоб знайти індекс елемента в списку, ви можете скористатися методом `index()`. Наприклад, якщо ми хочемо дізнатися індекс елемента “C#”, ми можемо скористатися наступним кодом.
print(pgm_langs.index('C#')) # Output: 7 assert pgm_langs[7] == 'C#'
Видалення елемента за індексом за допомогою `pop()`
Метод `pop()` використовується для видалення та повернення елемента за вказаним індексом. З попереднього прикладу ми знаємо, що “C#” має індекс 7.
Коли ми викликаємо `pop(7)` для списку `pgm_langs`, ми отримуємо “C#”, і цей елемент також видаляється зі списку.
print(pgm_langs.pop(7)) # Output: 'C#' print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']
Виклик методу `pop()` без вказання індексу видалить та поверне останній елемент списку.
print(pgm_langs.pop()) # Output: 'C' print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']
Видалення елементів за значенням за допомогою `remove()`
Якщо ви знаєте, який саме елемент потрібно видалити, але не знаєте його індекс, ви можете скористатися методом `remove()`. Цей метод видалить перше входження вказаного елемента зі списку. Видалимо “Java” зі списку `pgm_langs`.
pgm_langs.remove('Java') print(pgm_langs) # Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']
Видалення всіх елементів за допомогою `clear()`
Для видалення всіх елементів списку можна використовувати метод `clear()`. Виклик `clear()` зі списку `pgm_langs` видалить усі елементи, перетворюючи його на порожній список.
pgm_langs.clear() print(pgm_langs) # Output: []
Короткий огляд методів списків Python
Підсумуємо розглянуті методи та їх синтаксис:
Метод | Синтаксис | Опис |
`insert()` | `list1.insert(index, elt)` | Вставляє `elt` в позицію `index` в `list1` |
`append()` | `list1.append(elt)` | Додає `elt` в кінець `list1` |
`extend()` | `list1.extend(list2)` | Додає елементи з `list2` в кінець `list1` |
`sort()` | `list1.sort()` | Сортує список `list1` на місці |
`reverse()` | `list1.reverse()` | Змінює порядок елементів у списку `list1` на зворотний |
`copy()` | `list1.copy()` | Повертає поверхневу копію списку `list1` |
`count()` | `list1.count(elt)` | Повертає кількість входжень `elt` у `list1` |
`index()` | `list1.index(elt)` | Повертає індекс `elt` у `list1` |
`pop()` | `list1.pop(index)` | Видаляє та повертає елемент за індексом. Якщо індекс не вказаний, то видаляє останній елемент. |
`remove()` | `list1.remove(elt)` | Видаляє перше входження елемента `elt` зі списку `list1` |
`clear()` | `list1.clear()` | Видаляє всі елементи зі списку `list1` |
Висновок
Сподіваюся, цей посібник допоміг вам краще зрозуміти, як використовувати деякі з найбільш поширених методів списків у Python. Наступним кроком буде вивчення кортежів (tuples) у Python та відмінностей між списками та кортежами.
Якщо ви продовжуєте вивчати Python, ви можете переглянути цей список навчальних ресурсів для початківців.