Подорож №18. Опрацювання списків

Що можна робити зі списками?

Цей структурований тип даних є найбільш привабливий для опрацювання сукупностей даних. В цьому можна переконатися ознайомившись з можливостями списків та інструментами їх опрацювання.

В цій подорожі ви ознайомитесь з тим, як

  1. змінити значення списку
  2. склеїти списки
  3. дізнатися про кількість елементів у списку
  4. із рядка зробити список
  5. список перетвоити на рядок
  6. знайти максимальне або мінімальне значення списку
  7. створити список із випадкових значень іншого списку
  8. додати новий елемент в кінець списку
  9. додати новий елемент за індексом
  10. видалити елемент зі списку
  11. Відсортувати список

1. Зміна значення списку

Змінити значення елементу списку можна присвоюванням.

s = [4,1,2,3,5,6]
s[1] = 100

Після цього список s матиме значення [4,100,2,3,5,6]

2.Об'єднання списків

З двох списків можна створити один склеївши їх операцією +.

Наприклад:

s1 = [1,2,3,4]
s2 = [5,6,7,8]
s = s1 + s2
print(s)

Результатом виконання коду буде список [1,2,3,4,5,6,7,8]

Методи та функції опрацювання списків

3. Довжина списку len()

Визначає кількість елементів у списку.

lst = [1,2,3,4,5]
print(len(lst))

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

4.Перетворення рядка на список - list(рядок)

Для редагування рядка краще перетворити його на список функцією list

txt = "рядок"
lst = list(txt)
print(lst)

Резульатом виконання цієї функції буде ['р','я','д','о','к']

5.Перетворення списка на рядок - str(рядок)

Список можливо перетворити на рядок функцією str(список)

lst = ['a','b','b','a']
txt = str(lst)
print(txt)

Результат виконання коду 'abba'

6.Знаходження максимального та мінімального значення списку

Для знаходження максимального та мінімального значень списку, необхідно використати функції max() та min()

lst = [4,113,50,100]
mx = max(lst)
mn = min(lst)
print('max = ',mx,' min = ',mn)

Результатом виконання цієї програми буде: max = 113 min = 4

7.Створення списку із випадкових значень іншого списку - random.sample().

Припустимо, що маємо список lst з n елементів. Метод newlst = random.sample(lst,m) дозволяє отримати новий список newlst, вміст якого є m випадкових елементів списку lst. m <= n.

Цей метод належить модулю random. Тому, перед його застосуванням, необхідно імпортувати цей модуль.

Розглянемо приклад. Програма має обрати 2 - х чергових зі списку учнів випадковим чином.

  Вікно редактора Python
import random
duty = [ ]
pupils = ["Сидоренко","Коваленко","Іванов","Герц","Саленко"]
duty = random.sample(pupils,2)

Після виконання коду, Список duty матиме два випадкових прізвища.

8.Додавання нового елемента в кінець списку - append

В попередній подорожі було розглянуто: для того, щоб додати новий елемент в кінець списку застосовується метод - listname.append(newvalue)

9.Додавання нового елемента в будь-яке місце списку - insert

Формат метода: список.insert(індекс, елемент) - вставляє новий елемент в список

Розглянемо приклад. Дано: список класу. Програма має додати в список класу нового учня за абеткою.

  Вікно редактора Python
pupils = ["Герц","Іванов","Коваленко","Сидоренко"]
pupils.insert(1,"Дорош")

Після виконання коду, учень з прізвищем Дорош розташується після прізвища Герц.

10.Видалення елемента зі списку pop()

Для видалення елемента зі списку використовують метод список.pop(індекс елемента.)

Розглянемо приклад. Дано: список предметів. Програма має видалити елемент з індексом 2.

  Вікно редактора Python
lessons = ["Алгебра","Хімія","Інформатика","Біологія"]
lessons.pop(2)

Після виконання коду зі списку видалиться елемент з індексом 2 - "Інформатика"

11.Сортування елементів

Для того, щоб відсортувати всі елементи списку треба застосувати метод список.sort(). В дужках вказується напрям сотування - reverse. Він може приймати два значення: reverse = True (за спаданням), reverse = Flase (за зростанням). Якщо цю опцію не вказувати, то за замовченням сортування відбуватиметься за зростанням. Якщо необхідно здійснити сортування за спаданням, тоді необхідно вставити параметр reverse = True.

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

  Вікно редактора Python
numbers = [1,3,2,15,34,8,15]
numbers.sort()
print(numbers)
numbers.sort(reverse = True)
print(numbers)

Після виконання коду на екран буде виведено відсортований список спочатку за зростанням, потім за спаданням.

[1, 2, 3, 8, 15, 15, 34]
[34, 15, 15, 8, 3, 2, 1]

Практичні вправи

Задача 1

Дано слово. Визначити: чи правда, що воно починається і закінчується однією і тією ж буквою.

Задача 2

Дано: список цілих чисел, наприклад: L = [80,2,3,4,5,6,7,10] Код програми має поміняти місцями перше і останнє число списку.

Задача 3

Дано: список цілих чисел. Визначити різницю між найбільшим і найменшим числом