В тази статия ще научим ключови разлики между Списък и Tuples и как да използваме тези две структури от данни.
Списъците и Tuples съхраняват един или повече обекти или стойности в определен ред. Обектите, съхранявани в списък или кортеж, могат да бъдат от всякакъв тип, включително типа нищо, дефиниран от Ключовата дума None.
Списъците и Tuples са сходни в повечето контексти, но има някои разлики, които ще открием в тази статия.
Синтаксисни разлики
Синтаксисът на списък и кортеж е малко по-различен. Списъците са заобиколени от квадратни скоби, ()а Tuples са заобиколени от скоби ().
Пример 1.1: Създаване на списък срещу създаване на Tuple
 list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)
Изход:
(1,2,3,4) (1,2,3,4)
По-горе дефинирахме променлива, наречена list_num, която съдържа списък с числа от 1до 4. Списъкът е заобиколен от скоби (). Също така дефинирахме променлива tup_num; който съдържа набор от числа от 1до 4. Кортежът е заобиколен от скоби ().
В python имаме type()функция, която дава вида на създадения обект.
Пример 1.2: Намерете тип структура на данни, като използвате функцията type ()
 type(list_num) type(tup_num)
Изход:
списък кортеж
Изменяем списък срещу неизменяеми кортежи
Списъкът има променлив характер, т.е. списъкът може да бъде променян или модифициран след създаването му в съответствие с нуждите, докато кортежът има неизменяем характер, т.е.
Пример 2.1: Модифициране на списък с елементи спрямо Tuple
 list_num(2) = 5 print(list_num) tup_num(2) = 5
Изход:
(1,2,5,4) Проследяване (последно последно повикване): Файл „python“, ред 6, в TypeError: обектът „tuple“ не поддържа присвояване на елемент
В горния код 5присвоихме на list_num при индекс 2и намерихме 5при индекс 2в изхода. Също така 5присвоихме на tup_num по индекс 2и получихме type error. Не можем да модифицираме кортежа поради неговата неизменна природа.
Забележка: Тъй като кортежът е неизменен, те са с фиксиран размер и списъкът е с променлив размер.
Налични операции
Списъците имат по-вградена функция от тази на кортеж. Можем да използваме dir((object))вградена функция, за да получим всички свързани функции за списък и кортеж.
Пример 3.1: Списък с директории
 dir(list_num)
Изход:
('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__get __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __ne__ ',' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'добави', 'добави', 'добави,' копиране ',' брой ',' удължаване ',' индекс ','вмъкване ',' изскачане ',' премахване ',' обратно ',' сортиране ')
Пример 3.2: Директива на Tuple
 dir(tup_num)
Изход:
 ('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__get' ,__ ' __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ', ____ , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index')
Виждаме ясно, че има толкова много допълнителни функции, свързани със списък върху кортеж. Можем да правим операция за вмъкване и изскачане, премахване и сортиране на елементи в списъка с вградени функции, които не са налични в Tuple.
Сравнение на размера
Операцията Tuples има по-малък размер от този на списъка, което го прави малко по-бърз, но не толкова за споменаване, докато имате огромен брой елементи.
Пример 5.1: Изчислете размера на списъка спрямо Tuple
 a= (1,2,3,4,5,6,7,8,9,0) b= (1,2,3,4,5,6,7,8,9,0) print('a=',a.__sizeof__()) print('b=',b.__sizeof__())
Изход:
a = 104 b = 120
В горния код имаме кортеж a и списък b със същите елементи, но размерът на кортежа е по-малък от списъка.
Различни случаи на употреба
На пръв поглед може да изглежда, че списъците винаги могат да заменят кортежи. Но кортежите са изключително полезни структури от данни
- Използването на кортеж вместо списък може да даде на програмиста и интерпретатора намек, че данните не трябва да се променят.
 - Кортежите обикновено се използват като еквивалент на речник без ключове за съхранение на данни. Например,
((„Риба меч“, „Доминик Сена“, 2001), („Сноудън“, „Оливър Стоун“, 2016), („Шофьор на такси“, „Мартин Скорсезе“, 1976))
Горният пример съдържа кортежи вътре в списъка, който има списък с филми. - Четенето на данни е по-лесно, когато кортежи се съхраняват в списък. Например,
((2,4), (5,7), (3,8), (5,9))
е по-лесен за четене от((2,4), (5,7), (3,8), (5,9))
 
Tuple също може да се използва като ключ в речника поради техния хешируем и неизменяем характер, докато Списъците не се използват като ключ в речника, тъй като списъкът не може да се справи __hash__()и има променлив характер.
 key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid  
Основни моменти, които трябва да запомните:
- Синтаксисът на литералите на кортежи е показан чрез скоби, 
()докато синтаксисът на литералите на списъците е показан с квадратни скоби(). - Списъците имат променлива дължина, кортежът има фиксирана дължина.
 - Списъкът има изменчива природа, кортежът има неизменна природа.
 - Списъкът има повече функционалност от кортежа.
 








