Списки та кортежі в Python — це два класи структур даних Python. Структура списку є динамічною та легко змінюється, тоді як структура кортежу є статичною та не може бути змінена. Це означає, що кортеж, як правило, швидше, ніж список. Списки позначаються квадратними дужками, а кортежі — дужками.
Відмінності між List і Tuple в Python
Sno | СПИСОК | КОРТЕЖ |
|---|---|---|
| 1 | списки є мінливий | Кортежі є незмінними |
| 2 | Наслідки ітерацій займають багато часу | Наслідки ітерацій є порівняно швидшими |
| 3 | Список краще підходить для виконання операцій, таких як вставка та видалення. | Для доступу до елементів підходить тип даних Tuple |
| 4 | Списки споживають більше пам'яті | Кортеж споживає менше пам'яті порівняно зі списком |
| 5 | Списки мають кілька вбудованих методів | Tuple не має багато вбудованих методів. |
| 6 | Більша ймовірність виникнення несподіваних змін і помилок | Оскільки кортежі не змінюються, вони набагато менш схильні до помилок. |
Python List проти Python Tuple
Перевірте, чи є кортежі незмінними, а списки змінними
Тут ми збираємося порівняти тести мінливості списку та кортежу.
Python3 # Creating a List with # the use of Numbers # code to test that tuples are mutable List = [1, 2, 4, 4, 3, 3, 3, 6, 5] print('Original list ', List) List[3] = 77 print('Example to show mutability ', List)> Вихід
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
Ми можемо побачити тут кортеж не можна змінити.
Python3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Вихід:
функції java8
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Що краще список чи кортеж у Python?
Щоб перевірити цю відповідь, давайте виконаємо кілька операцій над кортежем Python і списком Python. Це дасть нам краще уявлення про те, який список або кортеж є кращим у Python.
Перевірте, чи кортежі ефективно використовують пам’ять
Оскільки кортежі зберігаються в одному блоці пам’яті, їм не потрібен додатковий простір для нових об’єктів, тоді як списки розподіляються на два блоки, перший фіксований з усіма Python інформацію про об’єкт, а другий – блок змінного розміру для даних.
Python3 import sys a_list = [] a_tuple = () a_list = ['Geeks', 'For', 'Geeks'] a_tuple = ('Geeks', 'For', 'Geeks') print(sys.getsizeof(a_list)) print(sys.getsizeof(a_tuple))> Вихід
96 80>
Перевірте, чи наслідки ітерацій є порівняно швидшими в кортежах
Оскільки кортежі зберігаються в одному блоці пам’яті, їм не потрібен додатковий простір для нових об’єктів, оскільки вони є незмінними, тоді як списки розподіляються на два блоки, перший фіксований з усіма Python інформацію про об’єкт, а другий – блок змінного розміру для даних, що робить їх ще швидшими.
Python3 # code import sys, platform import time l=list(range(100000001)) t=tuple(range(100000001)) start = time.time_ns() for i in range(len(t)): a = t[i] end = time.time_ns() print('Total lookup time for Tuple: ', end - start) start = time.time_ns() for i in range(len(l)): a = l[i] end = time.time_ns() print('Total lookup time for LIST: ', end - start)> Вихід
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
Змінний список проти незмінних кортежів
в Python , як списки, так і кортежі підтримують низку операцій, включаючи індексування, нарізку, конкатенацію тощо. Однак існують деякі відмінності між операціями, доступними для списків і кортежів, через їх змінність і незмінність відповідно.
Індексація Python
Як списки, так і кортежі дозволяють отримати доступ до окремих елементів за допомогою їх індексу, починаючи з 0.
Python3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
Вихід
1 5>
Нарізка Python
І списки, і кортежі дозволяють витягувати підмножину елементів за допомогою нарізки.
що таке пасхальне яйце androidPython3
my_list = [1, 2, 3, 4, 5] my_tuple = (6, 7, 8, 9, 10) print(my_list[1:3]) # Output: [2, 3] print(my_tuple[:3]) # Output: (6, 7, 8)>
Вихід
[2, 3] (6, 7, 8)>
Конкатенація Python
Як списки, так і кортежі можна об’єднувати за допомогою оператора +.
Python3 list1 = [1, 2, 3] list2 = [4, 5, 6] tuple1 = (7, 8, 9) tuple2 = (10, 11, 12) print(list1 + list2) # Output: [1, 2, 3, 4, 5, 6] print(tuple1 + tuple2) # Output: (7, 8, 9, 10, 11, 12)>
Вихід
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
Примітка - Проте є деякі операції, які доступні лише для списків через їх змінність.
Python Append
Списки можна додавати новими елементами за допомогою методу append().
Python3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
Вихід
[1, 2, 3, 4]>
Python Extend
Списки також можна розширити іншим списком за допомогою методу extend().
каталог у командах LinuxPython3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
Вихід
[1, 2, 3, 4, 5, 6]>
Видалити Python
списки можна видалити елементи за допомогою методу remove().
Python3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Вихід
[1, 3, 4]>
Коли використовувати кортежі замість списків?
в Python , кортежі та списки використовуються для зберігання колекцій даних, але вони мають деякі важливі відмінності. Ось деякі ситуації, коли ви можете використовувати кортежі замість списків –
Незмінні дані – Кортежі є незмінними, тому після їх створення їх вміст не можна змінити. Це робить кортежі придатним варіантом для зберігання інформації, яка не повинна змінюватися, наприклад параметрів налаштування, постійних значень або іншої інформації, яка має залишатися незмінною під час роботи вашої програми.
Продуктивність – Кортежі є легшими, ніж списки, і можуть бути швидшими для створення, доступу та повторення, оскільки вони незмінні. Використання кортежу може бути ефективнішим, ніж використання a список якщо у вас є величезна колекція даних, яку потрібно зберігати, отримувати та регулярно використовувати, і ці дані не потрібно змінювати.
Цілісність даних – Забезпечуючи узгодженість структури та вмісту даних, кортежі можна використовувати для забезпечення цілісності даних. Щоб переконатися, що абонент знає, скільки даних очікувати, наприклад, якщо функція повертається встановлену кількість значень, ви можете повернути їх як кортеж, а не як список.