logo

Verschil tussen lijst en tupel in Python

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
2De implicaties van iteraties zijn tijdrovendDe implicatie van iteraties is relatief sneller
3De lijst is beter voor het uitvoeren van bewerkingen, zoals invoegen en verwijderen.Een Tuple-gegevenstype is geschikt voor toegang tot de elementen
4Lijsten verbruiken meer geheugenTuple verbruikt minder geheugen in vergelijking met de lijst
5Lijsten hebben verschillende ingebouwde methodenTuple heeft niet veel ingebouwde methoden.
6De kans is groter dat er onverwachte wijzigingen en fouten optredenOmdat 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 hoeveel
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)>

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 Java
Python3
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.