Lister og Tuples i Python er to klasser af Python-datastrukturer. Listestrukturen er dynamisk og kan let ændres, mens tupelstrukturen er statisk og ikke kan ændres. Det betyder, at tuple generelt er hurtigere end listen. Lister er angivet med firkantede parenteser og tupler er angivet med parentes.
Forskelle mellem List og Tuple i Python
Sno | LISTE | TUPLE |
|---|---|---|
| 1 | Lister er foranderlig | Tuples er uforanderlige |
| 2 | Implikationen af iterationer er tidskrævende | Implikationen af iterationer er forholdsvis hurtigere |
| 3 | Listen er bedre til at udføre handlinger, såsom indsættelse og sletning. | En Tuple-datatype er passende til at få adgang til elementerne |
| 4 | Lister bruger mere hukommelse | Tuple bruger mindre hukommelse sammenlignet med listen |
| 5 | Lister har flere indbyggede metoder | Tuple har ikke mange indbyggede metoder. |
| 6 | Der er større sandsynlighed for, at der opstår uventede ændringer og fejl | Fordi tupler ikke ændrer sig, er de langt mindre fejltilbøjelige. |
Python List vs Python Tuple
Test om tupler er uforanderlige og lister er foranderlige
Her skal vi sammenligne listen og tuple mutabilitetstestene.
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)> Produktion
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
Vi kan se her tupel kan ikke ændres.
Python3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Produktion:
fjern første tegn i excel
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Hvilken er bedre liste eller tuple i Python?
For at sætte dette svar på prøve, lad os køre nogle operationer på en Python Tuple og en Python List. Dette vil give os en bedre idé om, hvilken der er en bedre liste eller tuple i Python.
Test om Tuples er hukommelseseffektive
Da tupler er gemt i en enkelt hukommelsesblok, kræver de derfor ikke ekstra plads til nye objekter, mens listerne er allokeret i to blokke, først den faste med alle Python objektinformation og dernæst en blok i variabel størrelse for dataene.
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))> Produktion
96 80>
Test, om implikationen af iterationer er forholdsvis hurtigere i Tuples
Da tupler er gemt i en enkelt hukommelsesblok, kræver de derfor ikke ekstra plads til nye objekter, da de er uforanderlige, mens listerne er allokeret i to blokke, først den faste med alle Python objektinformation og for det andet en blok i variabel størrelse for dataene, som gør dem endnu hurtigere.
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)> Produktion
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
Foranderlig liste vs. uforanderlige tuples
I Python , understøtter både lister og tuples en række operationer, herunder indeksering, udskæring, sammenkædning og mere. Der er dog nogle forskelle mellem de operationer, der er tilgængelige for lister og tupler på grund af deres henholdsvis mutabilitet og uforanderlighed.
Python-indeksering
Både lister og tupler giver dig adgang til individuelle elementer ved hjælp af deres indeks, startende fra 0.
Python3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
Produktion
1 5>
Python udskæring
Både lister og tupler giver dig mulighed for at udtrække en delmængde af elementer ved hjælp af udskæring.
generel beskyttelsesfejlPython3
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)>
Produktion
[2, 3] (6, 7, 8)>
Python-sammenkædning
Både lister og tupler kan sammenkædes ved hjælp af +-operatoren.
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)>
Produktion
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
Bemærk - Der er dog nogle operationer, der kun er tilgængelige for lister på grund af deres mutabilitet.
Python Tilføj
Lister kan tilføjes nye elementer ved hjælp af append() metoden.
Python3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
Produktion
[1, 2, 3, 4]>
Python Extend
Lister kan også udvides med en anden liste ved hjælp af extend() metoden.
sql server pivotPython3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
Produktion
[1, 2, 3, 4, 5, 6]>
Python Fjern
Lister kan få elementer fjernet ved hjælp af remove() metoden.
Python3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Produktion
[1, 3, 4]>
Hvornår skal man bruge Tuples Over Lists?
I Python , tupler og lister bruges begge til at gemme samlinger af data, men de har nogle vigtige forskelle. Her er nogle situationer, hvor du måske vil bruge tupler i stedet for lister –
Uforanderlige data – Tuples er uforanderlige, så når de først er genereret, kan deres indhold ikke ændres. Dette gør tuples til en passende mulighed for at gemme information, der ikke bør ændres, såsom opsætningsindstillinger, konstante værdier eller anden information, der bør forblive den samme, mens dit program kører.
Ydeevne – Tuples er mere lette end lister og kan være hurtigere at generere, få adgang til og gentage, da de er uforanderlige. At bruge en tupel kan være mere effektiv end at bruge en liste hvis du har en enorm samling af data, som du skal gemme, hente og bruge regelmæssigt, og de data ikke skal ændres.
Dataintegritet - Ved at sikre, at dataens struktur og indhold forbliver konsistente, kan tuples bruges til at sikre dataintegritet. For at sikre, at den, der ringer, er klar over, hvor meget data man kan forvente, for eksempel hvis en funktion vender tilbage en fast mængde værdier, vil du måske returnere dem som en tupel i stedet for en liste.