Lijsten en Tuples in Python zijn twee klassen Python-gegevensstructuren. De lijststructuur is dynamisch en kan gemakkelijk worden gewijzigd, terwijl de tupelstructuur statisch is en niet kan worden gewijzigd. Dit betekent dat het tupel over het algemeen sneller is dan de lijst. Lijsten worden aangegeven met vierkante haken en tupels worden aangegeven met haakjes.
Verschillen tussen Lijst en Tuple in Python
Sno | LIJST | TUPLE |
|---|---|---|
| 1 | Lijsten Zijn veranderlijk | Tupels zijn onveranderlijk |
| 2 | De implicaties van iteraties zijn tijdrovend | De implicatie van iteraties is relatief sneller |
| 3 | De lijst is beter voor het uitvoeren van bewerkingen, zoals invoegen en verwijderen. | Een Tuple-gegevenstype is geschikt voor toegang tot de elementen |
| 4 | Lijsten verbruiken meer geheugen | Tuple verbruikt minder geheugen in vergelijking met de lijst |
| 5 | Lijsten hebben verschillende ingebouwde methoden | Tuple heeft niet veel ingebouwde methoden. |
| 6 | De kans is groter dat er onverwachte wijzigingen en fouten optreden | Omdat tupels niet veranderen, zijn ze veel minder foutgevoelig. |
Python-lijst versus Python Tuple
Test of tupels onveranderlijk zijn en of lijsten veranderlijk zijn
Hier gaan we de lijst- en tupel-mutabiliteitstests vergelijken.
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)> Uitvoer
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
Wij kunnen het hier zien tupel kan niet worden gewijzigd.
Python3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Uitgang:
hoe de huidige datum in Java te krijgen
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Wat is een betere lijst of tupel in Python?
Om dit antwoord op de proef te stellen, laten we enkele bewerkingen uitvoeren op een Python Tuple en een Python List. Dit geeft ons een beter idee van wat een betere lijst of tuple is in Python.
Test of Tuples geheugenefficiënt zijn
Omdat tuples in één enkel geheugenblok worden opgeslagen, hebben ze geen extra ruimte nodig voor nieuwe objecten, terwijl de lijsten in twee blokken worden toegewezen, eerst het vaste blok met alle Python objectinformatie en ten tweede een blok van variabele grootte voor de gegevens.
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))> Uitvoer
96 80>
Test of de implicatie van iteraties relatief sneller is in Tuples
Omdat tupels in één enkel geheugenblok worden opgeslagen, hebben ze daarom geen extra ruimte nodig voor nieuwe objecten, omdat ze onveranderlijk zijn, terwijl de lijsten in twee blokken worden toegewezen, eerst het vaste blok met alle Python objectinformatie en ten tweede een blok van variabele grootte voor de gegevens, waardoor ze nog sneller worden.
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)> Uitvoer
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
Veranderlijke lijst versus onveranderlijke tupels
In Python , ondersteunen zowel lijsten als tupels een reeks bewerkingen, waaronder indexering, segmentering, aaneenschakeling en meer. Er zijn echter enkele verschillen tussen de bewerkingen die beschikbaar zijn voor lijsten en tuples vanwege respectievelijk hun veranderlijkheid en onveranderlijkheid.
Python-indexering
Zowel lijsten als tupels geven u toegang tot individuele elementen met behulp van hun index, beginnend bij 0.
Python3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
Uitvoer
1 5>
Python snijden
Met zowel lijsten als tupels kunt u een subset van elementen extraheren met behulp van segmenteren.
10 ml is hoeveelPython3
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)>
Uitvoer
[2, 3] (6, 7, 8)>
Python-aaneenschakeling
Zowel lijsten als tupels kunnen worden samengevoegd met behulp van de operator +.
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)>
Uitvoer
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
Opmerking - Er zijn echter enkele bewerkingen die vanwege hun veranderlijkheid alleen beschikbaar zijn voor lijsten.
Python toevoegen
Lijsten kunnen worden toegevoegd met nieuwe elementen met behulp van de append() methode.
Python3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
Uitvoer
[1, 2, 3, 4]>
Python-verlenging
Lijsten kunnen ook worden uitgebreid met een andere lijst met behulp van de methode extend().
converteer int naar dubbele JavaPython3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
Uitvoer
[1, 2, 3, 4, 5, 6]>
Python verwijderen
Lijsten kan elementen laten verwijderen met behulp van de remove() methode.
Python3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Uitvoer
[1, 3, 4]>
Wanneer gebruik je tupels boven lijsten?
In Python , tuples en lijsten worden beide gebruikt om gegevensverzamelingen op te slaan, maar ze hebben enkele belangrijke verschillen. Hier zijn enkele situaties waarin u mogelijk tupels wilt gebruiken in plaats van lijsten:
Onveranderlijke gegevens – Tupels zijn onveranderlijk, dus zodra ze zijn gegenereerd, kan de inhoud ervan niet meer worden gewijzigd. Dit maakt tupels een geschikte optie voor het opslaan van informatie die niet mag veranderen, zoals installatie-instellingen, constante waarden of andere informatie die hetzelfde moet blijven terwijl uw programma draait.
Prestatie – Tupels zijn lichter dan lijsten en kunnen sneller worden gegenereerd, geopend en doorlopen, omdat ze onveranderlijk zijn. Het gebruik van een tupel kan effectiever zijn dan het gebruik van een lijst als u een enorme verzameling gegevens heeft die u regelmatig moet opslaan, ophalen en gebruiken en die gegevens niet gewijzigd hoeven te worden.
Data-integriteit - Door ervoor te zorgen dat de structuur en inhoud van de gegevens consistent blijven, kunnen tupels worden gebruikt om de gegevensintegriteit te waarborgen. Om er zeker van te zijn dat de beller weet hoeveel gegevens hij kan verwachten, bijvoorbeeld bij een functie geeft terug een vast aantal waarden, wilt u deze misschien als een tupel retourneren in plaats van als een lijst.