85.36K

Python Урок 10 Кортеж

1.

Тема уроку:
кортеж

2.

Кортеж (tuple) в Python
Кортеж в Python схожий на список. Різниця між ними полягає в тому, що ми не можемо змінити елементи кортежу після присвоювання
їм значень, тоді як елементи списку ми можемо змінити.
Створення кортежу в Python
Кортеж створюється шляхом розміщення всіх елементів у круглих дужках (), розділених
комами. Круглі дужки необов’язкові, проте їх використання є хорошою практикою.
Кортеж може містити будь-яку кількість елементів, і вони можуть бути різних типів
(int, float, list, string тощо). Наприклад:
1 # Різні типи кортежів
Результат:
2
3 # Порожній кортеж
()
4 my_tuple = ()
(1, 2, 3)
5 print(my_tuple)
6
(1, 'Hello', 3.4)
7 # Кортеж, що містить цілі числа
8 my_tuple = (1, 2, 3)
('mouse', [8, 4, 6], (1, 2, 3))
9
10
11
12
13
14
15
16
17
print(my_tuple)
# Кортеж зі змішаними типами
даних
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# Вкладений кортеж
my_tuple = ("mouse", [8, 4, 6], (1, 2,
3))
print(my_tuple)
Також ми можемо створювати кортежі без використання круглих
дужок:
1 my_tuple = 1, 2, 3
2 my_tuple = 1, "Hello", 3.4

3.

Створення кортежу з одним елементом
В Python при створенні кортежу з одним елементом потрібно вказувати кому в кінці, щоб вказати, що це саме кортеж (а не рядок):
1 var1 = ("Hello") # це рядок
2 var2 = ("Hello",) # а це кортеж
Ми можемо використовувати функцію type(), щоб дізнатися, до якого класу належить змінна чи значення:
1
2
3
4
5
6
7
8
9
1
0
var1 = ("hello")
print(type(var1))
# Створення кортежу, що містить один
елемент
var2 = ("hello",)
print(type(var2))
# Круглі дужки необов'язкові
var3 = "hello",
print(type(var3))
Результат:
<class 'str’>
<class 'tuple’>
<class 'tuple'>

4.

Доступ до елементів кортежу в Python
Подібно до списку, кожен елемент кортежу представлений індексними номерами (0, 1, …), де індекс першого елемента 0. Номер
індексу використовується для доступу до елементів кортежу. Наприклад:
1. Індексація
Ми можемо використовувати оператор індексу [] для доступу до елемента в кортежі, у
якого індекс починається з 0. Таким чином, кортеж, що складається з 6 елементів,
матиме індекси від 0 до 5. Спроба отримати доступ до індексу за межами діапазону
індексів кортежу (наприклад, до індексів 6 або 7) викличе помилку IndexError.
Індекс має бути цілим числом, тому ми не можемо використовувати тип float чи інші
типи. Це призведе до помилки TypeError. Аналогічно доступ до вкладених кортежів
здійснюється з використанням вкладеної індексації, як показано в наступному
1 # Доступ до елементів кортежу з використанням індексації
прикладі:
2 letters = ("p", "r", "o", "g", "r", "a", "m", "i", "z")
3
4 print(letters[0]) # виведе "p"
5 print(letters[5]) # виведе "a"

5.

Доступ до елементів кортежу в Python
2. Від’ємна індексація
Python дозволяє і від’ємну індексацію своїх послідовностей. Індекс -1 відноситься до останнього елемента, індекс -2 відноситься до
передостаннього елемента і так далі. Наприклад:
1
2
3
4
5
# Доступ до елементів кортежу з використанням від'ємної
індексації
letters = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(letters[-1]) # виведе 'z'
print(letters[-3]) # виведе 'm'
3. Зріз
Ми можемо отримати доступ до діапазону
елементів у кортежі, використовуючи
оператор зрізу :.
Примітка: При виконанні зрізу в
кортежах перший індекс
є включаючим, а кінцевий —
виключаючим.
Результат:
('o', 'g’)
('p', 'r’)
('i', 'z’)
('p', 'r', 'o',
'z')
1 # Доступ до елементів кортежу за допомогою зрізу
2 my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
3
4 # Виводимо "зрізані" елементи з 2 по 4 індекс
5 print(my_tuple[2:4])
6
7 # Виводимо елементи до 2-го індексу – від'ємна
8 індексація
9 print(my_tuple[:-7])
10
11 # Виводимо елементи з 7-го індексу до останнього
12 print(my_tuple[7:])
13
'g', 14
'r',
'a', 'm',
'i', кортежу
# Виводимо
всі елементи
print(my_tuple[:])

6.

Методи для роботи з кортежами в Python
У Python методи, які додають або видаляють елементи, не працюють з кортежами. Працюють лише наступні два методи:
1 my_tuple = ('a', 'p', 'p', 'l', 'e',)
2
3 print(my_tuple.count('p')) # виведе 2
4 print(my_tuple.index('l')) # виведе 3
Ітерація кортежу в Python
Ми можемо використовувати цикл for для перебору елементів кортежу. Наприклад:
1 languages = ('Python', 'Swift', 'C++')
2
3 # Перебираємо та виводимо елементи
4 кортежу
5 for language in languages:
print(language)
Результат:
Python
Swift
C

7.

Перевірка, чи існує елемент у кортежі
Ключове слово in використовується для перевірки того, чи існує елемент у кортежі,
чи ні. Наприклад:
1 languages = ('Python', 'Swift', 'C++')
2
3 print('C' in languages)
# виведе False
4 print('Python' in languages) # виведе
True

8.

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

9.

Функція filter() в Python
Функція filter() вибирає елементи з ітерованого об’єкта (список, кортеж тощо) на
основі вихідних даних функції. Функція застосовується до кожного елемента
ітерованого об’єкта, і якщо вона повертає True, то елемент буде обраний функцією
filter().
Наприклад:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Повертаємо True, якщо переданий аргумент є парним
def check_even(number):
if number % 2 == 0:
return True
return False
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Якщо елемент, переданий у функцію check_even(), повертає True, вибираємо його
even_numbers_iterator = filter(check_even, numbers)
# Конвертуємо в список
even_numbers = list(even_numbers_iterator)
print(even_numbers)
Результат:
[2, 4, 6, 8, 10]

10.

Синтаксис функції filter()
1 filter(function, iterable)
Параметри функції filter()
Функція filter() приймає два параметри:
function — функція;
iterable — ітерований об’єкт, такий як множини, списки, кортежі тощо.
Значення, яке повертає функція filter()
Функція filter() повертає ітератор.
Примітка: Ви можете легко перетворити ітератори на послідовності, такі як
списки, кортежі, рядки й т.д.

11.

Приклад №1: Робота функції filter()
1
2
3
4
5
6
7
8
9
10
11
12
letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# Функція повертає True, якщо елемент є голосною літерою
def filter_vowels(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
return True if letter in vowels else False
Результат:
('a', 'e', 'i'
filtered_vowels = filter(filter_vowels, letters)
# Конвертуємо в кортеж
vowels = tuple(filtered_vowels)
print(vowels)
Тут функція filter() отримує лише голосні літери зі
списку letters. Ось як працює цей код:
кожен елемент списку letters передається у функцію
filter_vowels();
якщо функція filter_vowels() повертає True, цей
елемент вилучається, в протилежному випадку він
ігнорується.
Примітка: Фільтрувати списки також можна за
допомогою циклу, проте використання функції
filter() набагато простіше.

12.

Приклад №2: Використання лямбда-функції
всередині функції filter()
1
2
3
4
5
6
7
8
9
numbers = [1, 2, 3, 4, 5, 6, 7]
# Лямбда-функція повертає True для парних чисел
even_numbers_iterator = filter(lambda x: (x%2 == 0), numbers)
# Конвертуємо в список
even_numbers = list(even_numbers_iterator)
print(even_numbers)
Тут ми безпосередньо передали лямбда-функцію
всередині функції inside(). Наша лямбда-функція
повертає True для парних чисел. Отже, функція
filter() повертає ітератор, який містить лише парні
числа.
Результат:
[2, 4, 6]

13.

Приклад №3: Використання None як функції
усередині функції filter()
1
2
3
4
5
6
7
8
9
# Випадковий перелік
random_list = [1, 'a', 0, False, True, '0']
filtered_iterator = filter(None, random_list)
# Конвертуємо в список
filtered_list = list(filtered_iterator)
print(filtered_list)
Результат:
[1, 'a', True, '0']
Коли None використовується як перший
аргумент функції filter(), вилучаються всі
елементи, які є True (при перетворенні в
логічні значення мають значення True).
English     Русский Правила