logo

Atšķirība starp sarakstu un Tuple Python

Saraksti un Korpusi Python ir divas Python datu struktūru klases. Saraksta struktūra ir dinamiska un viegli maināma, turpretim korešu struktūra ir statiska un to nevar mainīt. Tas nozīmē, ka kortežs parasti ir ātrāks par sarakstu. Saraksti tiek apzīmēti ar kvadrātiekavām, bet korteži ir apzīmēti ar iekavām.

Atšķirības starp sarakstu un Tuple Python

Sno

SARAKSTS



TUPLE

1 Saraksti ir mainīgs Korpusi ir nemainīgi
2Iterāciju ietekme ir laikietilpīgaIterāciju ietekme ir salīdzinoši ātrāka
3Saraksts ir labāks tādu darbību veikšanai kā ievietošana un dzēšana.Datu tips Tuple ir piemērots, lai piekļūtu elementiem
4Saraksti patērē vairāk atmiņasTuple patērē mazāk atmiņas, salīdzinot ar sarakstu
5Sarakstos ir vairākas iebūvētas metodesTuple nav daudz iebūvētu metožu.
6Negaidītu izmaiņu un kļūdu iespējamība ir lielākaTā kā korteži nemainās, tajās ir daudz mazāk kļūdu.

Python saraksts pret Python Tuple

Pārbaudiet, vai korteži ir nemainīgi un saraksti ir mainīgi

Šeit mēs salīdzināsim sarakstu un korekcijas mainīguma testus.

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)>

Izvade
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>

Mēs varam redzēt šeit korts nevar modificēt.

Python3
# code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>

Izvade:

Internetbankas trūkumi
Traceback (most recent call last):  File 'e0eaddff843a8695575daec34506f126.py', line 3, in  tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>

Kurš Python saraksts ir labāks?

Lai pārbaudītu šo atbildi, izpildīsim dažas darbības ar Python Tuple un Python sarakstu. Tas sniegs mums labāku priekšstatu par to, kurš ir labāks Python saraksts vai kortežs.

Pārbaudiet, vai Tuples ir efektīvas atmiņas efektivitāte

Tā kā korteži tiek glabāti vienā atmiņas blokā, tiem nav nepieciešama papildu vieta jauniem objektiem, turpretim saraksti tiek sadalīti divos blokos, vispirms fiksētajā ar visiem Python objekta informāciju un otrkārt mainīga izmēra bloku datiem.

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))>

Izvade
96 80>

Pārbaudiet, vai iterāciju ietekme ir salīdzinoši ātrāka programmā Tuples

Tā kā korteži tiek glabāti vienā atmiņas blokā, tiem nav nepieciešama papildu vieta jauniem objektiem, jo ​​tie ir nemainīgi, turpretim saraksti tiek sadalīti divos blokos, vispirms fiksētajā ar visiem Python objekta informāciju un, otrkārt, mainīga izmēra bloku datiem, kas padara tos vēl ātrākus.

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)>

Izvade

Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>

Mainīgs saraksts pret nemaināmiem korektoriem

In Python , gan saraksti, gan korteži atbalsta virkni darbību, tostarp indeksēšanu, sadalīšanu, savienošanu un daudz ko citu. Tomēr ir dažas atšķirības starp operācijām, kas ir pieejamas sarakstiem un kortežiem, ņemot vērā to mainīgumu un nemainīgumu.

Python indeksēšana

Gan saraksti, gan korteži ļauj piekļūt atsevišķiem elementiem, izmantojot to indeksu, sākot no 0.

Python3
my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>

Izvade
1 5>

Python sagriešana

Gan saraksti, gan korteži ļauj iegūt elementu apakškopu, izmantojot sagriešanu.

pilna forma pvr
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)>

Izvade
[2, 3] (6, 7, 8)>

Python savienošana

Gan sarakstus, gan korešus var savienot, izmantojot operatoru +.

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)>

Izvade
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>

Piezīme - Tomēr ir dažas darbības, kas ir pieejamas tikai sarakstiem to mainīguma dēļ.

Python pievienot

Sarakstus var pievienot ar jauniem elementiem, izmantojot append() metodi.

Python3
my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>

Izvade
[1, 2, 3, 4]>

Python Extend

Sarakstus var arī paplašināt ar citu sarakstu, izmantojot paplašināt() metodi.

uzdevumu pārvaldnieks operētājsistēmai Linux
Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

Izvade
[1, 2, 3, 4, 5, 6]>

Python noņemšana

Saraksti elementi var tikt noņemti, izmantojot metodi remove().

Python3
my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>

Izvade
[1, 3, 4]>

Kad lietot Tuples Over sarakstus?

In Python , gan korteži, gan saraksti tiek izmantoti datu kolekciju glabāšanai, taču tiem ir dažas būtiskas atšķirības. Tālāk ir norādītas dažas situācijas, kurās sarakstu vietā varētu vēlēties izmantot virknes.

Nemainīgi dati Korpusi ir nemainīgi, tāpēc pēc to ģenerēšanas to saturu nevar mainīt. Tādējādi korteži ir piemērota opcija tādas informācijas glabāšanai, kurai nevajadzētu mainīties, piemēram, iestatīšanas iestatījumus, nemainīgas vērtības vai citu informāciju, kurai programmas darbības laikā ir jāpaliek nemainīgai.

Performance Korpusi ir vieglāki nekā saraksti, un tos var ātrāk ģenerēt, piekļūt un atkārtot, jo tie ir nemainīgi. Korejas izmantošana var būt efektīvāka nekā a sarakstu ja jums ir milzīga datu kolekcija, kas jums regulāri jāsaglabā, jāizgūst un jāizmanto un šie dati nav jāmaina.

Datu ticamība - Nodrošinot datu struktūras un satura konsekvenci, datu integritātes nodrošināšanai var izmantot kopas. Lai pārliecinātos, ka zvanītājs zina, cik daudz datu ir sagaidāms, piemēram, ja funkcija atgriežas noteiktu vērtību daudzumu, iespējams, vēlēsities tās atgriezt kā korteži, nevis sarakstu.