Списки

Списки в Python

Список є об'єктом, який змінюється, в нього можна додавати елементи, видаляти їх, змінювати значення елементів.

Одним з різновидів списку є масив.

Різниця між масивом і списком: в масиві елементи одного типу, в списку елементи можуть бути різного типу даних.

Для зручності позначатимемо список lst.

Приклад списку: lst = [1, 2, 'один', 'два']

Списки як і масиви можуть бути одновимірні і багатовимірні.

Одновимірні списки. Списки можна створювати простим перерахуванням елементів у списку. Нумерація елементів списку починається з нуля.

Наприклад:

lst = [1, 2, 'один', 'два']

lst[0] = 1, lst[1] = 2, lst[2] = 'один', lst[3] = 'два'

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

(всі операції перевіряємо в інтерактивному режимі IDLE Shell)

1. Виведення будь-якого елементу списку:

>>> lst =[3, -5, 10, 20, -8]

>>> lst[3]

20

2. Зміна значення елемента списку:

>>> lst =[3, -5, 10, 20, -8]

>>> lst[3] = 0

>>> lst

[3, -5, 10, 0, -8]

3. Значення можна присвоїти декільком спискам однакові:

>>> lst1 = lst2 =[3, 10, 20, -8]

>>>lst1, lst2

([3. 10, 20, -8], [3. 10, 20, -8])

4. Операція зрізу з списку, коли ми відділяємо певні елементи списку. Вказуємо назву списку[початок: кінець: крок]:

>>> lst =[3, -5, 10, 20, -8, 0, 1, 2]

>>> lst [1:3]

[-5, 10]

>>> lst[1:6]

[-5, 10, 20, -8, 0]

>>> lst[1:6:2]

[-5, 20, 0]

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

>>> lst1 = [0, 1, 2]

>>> lst2 = [3, 4, 5]

>>> lst1+lst2

[0, 1, 2, 3, 4, 5]

Функції опрацювання списків

(всі функції перевіримо в написанні коду,

кожна частинка коду перевірена в Python)

1. len() - довжина списку

lst = [0, 1, 2]

x = len(lst)

print(x)

Результат: 3

2. sample() - отримання списку з випадковими числами в заданому діапазоні. Містить наступну структуру:

random.sample(range(діапазон), кількість випадкових чисел)

import random

lst = random.sample(range(50), 5)

print(lst)

Результат: [24, 18, 17, 43, 49]

3. max() i min() - пошук найбільшого та найменшого елементів

lst = [24, 18, 17, 43, 49]

a = min(lst)

b = max(lst)

print('a=', a, 'b=', b)

Результат: a= 17 b= 49

4. choice() - вибір випадкового елемента із списку

import random

lst = [24, 18, 17, 43, 49]

x = random.choice(lst)

print('x=', x)

Результат: x= 24

5. list() - перетворює рядок у список

a = 'Україна'

lst1 = list(a)

print(lst1)

Результат: ['У', 'к', 'р', 'а', 'ї', 'н', 'а']

6. append(об'єкт) - додає об'єкт в кінець списку

lst = ['У', 'к', 'р', 'а', 'ї', 'н', 'а']

lst.append(20)

print(lst)

Результат: ['У', 'к', 'р', 'а', 'ї', 'н', 'а', 20]

7. extend() - додає кілька елементів в кінець списку

lst = ['У', 'к', 'р', 'а', 'ї', 'н', 'а']

lst.extend(['понад', 'усе'])

print(lst)

Результат: ['У', 'к', 'р', 'а', 'ї', 'н', 'а', 'понад', 'усе']

8. insert(індекс, об'єкт) - додає один об'єкт на вказану позицію в списку

lst1 = [0, 1, 2]

lst1.insert(2, 110)

print(lst1)

Результат: [0, 1, 110, 2]

Пам'ятаємо, що нумерація в списку починається з нуля (0, 1, 2, 3 ...).

9. pop(індекс) або del(індекс) - видаляє елемент у списку за його індексом

lst = [0, 1, 2, 5, 8, 7]

lst.pop(5)

print(lst)

Результат: [0, 1, 2, 5, 8]

10. remove(значення) - видаляє зі списку перший елемент, який містить таке значення.

lst = [0, 1, 2, 5, 8, 7]

lst.remove(2)

print(lst)

Результат: [0, 1, 5, 8, 7]

11. clear() - видаляє зі списку всі елементи.

lst = [0, 1, 2, 5, 8, 7]

lst.clear()

print('lst=', lst)

Результат: lst= [ ]

Пустий список відображається просто відкритою і закритою квадратними дужками.

12. index(значення, початок, кінець) - індекс елемента, який має вказане значення. Якщо не вказуємо початок і кінець, то використовується весь список для пошуку елемента.

lst = [0, 1, 2, 5, 8, 7]

x = lst.index(2, 3,5)

print(x)

Результат: ValueError: 2 is not in list

Тобто, значення елемента 2 на проміжку від 3 індексу до 5 немає.

Що ж буде, якщо ми пошукаємо значення 8 на тому ж проміжку?

lst = [0, 1, 2, 5, 8, 7]

x = lst.index(8, 3,5)

print(x)

Результат: 4

13. count(значення) - визначення кількості елементів за вказаним значенням, якщо елемент відсутній, повертається значення 0.

lst = [0, 1, 2, 5, 2, 8, 7, 2]

x = lst.count(2)

print(x)

Результат: 3

Якщо ми змінимо:

lst = [0, 1, 2, 5, 2, 8, 7, 2]

x = lst.count(10)

print(x)

Результат: 0

14. sort() - сортування елементів списку.

sort(key = None, reverse = False) - загальний вигляд сортування.

Якщо reverse = False - сортуємо за зростанням

Якщо reverse = True - сортуємо за спаданням

Старий список перетворюється на новий.

lst = [0, 1, 2, 5, 2, 8, 7, 2]

lst.sort()

print(lst)

Результат: [0, 1, 2, 2, 2, 5, 7, 8]

Відсортуємо у зворотному порядку:

lst = [0, 1, 2, 5, 2, 8, 7, 2]

lst.sort(reverse = True)

print(lst)

Результат: [8, 7, 5, 2, 2, 2, 1, 0]

15. sorted(список, reverse = False) - сортування списку із збереженням старого списку

Якщо reverse = False - сортуємо за зростанням

Якщо reverse = True - сортуємо за спаданням

lst = [0, 1, 2, 5, 2, 8, 7, 2]

x = sorted(lst, reverse = True)

print(x)

print(lst)

Результат: [8, 7, 5, 2, 2, 2, 1, 0]

[0, 1, 2, 5, 2, 8, 7, 2]


Багатовимірні списки

У багатовимірних списках група елементів береться у квадратні дужки і весь список міститься у квадратних дужках.

Наприклад:

lst = [[0,1,2], [3,4,5], [6,7,8]]

або можна записати в стовпчик:

lst = [

[0,1,2],

[3,4,5],

[6,7,8]]

Для виведення елемента списку потрібно вказати його індекси:

lst = [[0,1,2], [3,4,5], [6,7,8]]

print(lst[1][0])

Результат: 3

Тобто, в першому рядку нульовий елемент має значення 3.

Пам'ятаємо, що індекси починаються з нуля. Тобто перший рядок це [3,4,5], а нульовий елемент у цьому рядку 3.

При побудові виведення елементу списку ми вказуємо лише дві величини - номер (індекс) рядка і номер (індекс) елемента.

Запитання для самоперевірки:

1. Що називають списком?

- це сукупність елементів до 10 значень

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

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

2. Чи можна змінити значення елемента списку?

- Ні, це фіксований набір значень.

- Так, можна змінити будь-який елемент списку.

- Так, можна змінити один елемент у списку.

3. Як здійснюється об'єднання списків?

- Це операція +

- Це операція U

- Списки не можна об'єднувати.

4. Для чого слугують методи append() i remove()?

- append() додає один елемент в кінець списку, remove() видаляє вказане значення з списку.

- append() додає один елемент в кінець списку, remove() видаляє одне значення з списку.

- append() додає один елемент в початок списку, remove() видаляє вказане значення з списку.

5. Поясніть сутність методу insert().

- insert( індекс, об'єкт) додає всі об'єкти у вказану позицію списку.

- insert( індекс, об'єкт) додає один об'єкт у вказану позицію списку.

- insert( індекс, об'єкт) додає об'єкт в кінець списку.

6. За допомогою яких методів виконується сортування елементів списку?

- print()

- sort()

- reverse

- sorted()

7. Поясніть порядок створення 10 елементного списку випадкових чисел від 5 до 50.

- import random

random(5, 50)

- import random

random(50, 10)

- import random

random.sample(range(5, 50), 10)


Коментарі