logo

Різниця між List і Tuple в Python

Списки та кортежі в 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

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

що таке пасхальне яйце android
Python3
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().

каталог у командах Linux
Python3
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 список якщо у вас є величезна колекція даних, яку потрібно зберігати, отримувати та регулярно використовувати, і ці дані не потрібно змінювати.

Цілісність даних – Забезпечуючи узгодженість структури та вмісту даних, кортежі можна використовувати для забезпечення цілісності даних. Щоб переконатися, що абонент знає, скільки даних очікувати, наприклад, якщо функція повертається встановлену кількість значень, ви можете повернути їх як кортеж, а не як список.