Listor och Tuples i Python är två klasser av Python-datastrukturer. Liststrukturen är dynamisk och kan lätt ändras medan tuppelstrukturen är statisk och inte kan ändras. Detta innebär att tupeln i allmänhet är snabbare än listan. Listor betecknas med hakparenteser och tupler betecknas med parentes.
Skillnader mellan List och Tuple i Python
Sno | LISTA | TUPLE |
|---|---|---|
| 1 | Listor är föränderlig | Tuples är oföränderliga |
| 2 | Implikationen av iterationer är tidskrävande | Implikationen av iterationer är jämförelsevis snabbare |
| 3 | Listan är bättre för att utföra operationer, såsom infogning och borttagning. | En Tuple-datatyp är lämplig för att komma åt elementen |
| 4 | Listor förbrukar mer minne | Tuple förbrukar mindre minne jämfört med listan |
| 5 | Listor har flera inbyggda metoder | Tuple har inte många inbyggda metoder. |
| 6 | Det är mer sannolikt att oväntade förändringar och fel inträffar | Eftersom tuplar inte förändras är de mycket mindre felbenägna. |
Python List vs Python Tuple
Testa om tupler är oföränderliga och listor är föränderliga
Här ska vi jämföra listan och tupelförändringstester.
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 här tuppel kan inte ändras.
Python3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
Produktion:
sida ner tangentbordet
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Vilken är bättre lista eller tupel i Python?
För att sätta det här svaret på prov, låt oss köra några operationer på en Python Tuple och en Python List. Detta kommer att ge oss en bättre uppfattning om vilken som är en bättre lista eller tupel i Python.
Testa om tuplar är minneseffektiva
Eftersom tupler lagras i ett enda minnesblock kräver de därför inte extra utrymme för nya objekt medan listorna är tilldelade i två block, först det fasta med alla Pytonorm objektinformation och för det andra ett block av variabel storlek för data.
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>
Testa om implikationen av iterationer är jämförelsevis snabbare i Tuples
Eftersom tupler lagras i ett enda minnesblock kräver de därför inte extra utrymme för nya objekt eftersom de är oföränderliga medan listorna är allokerade i två block, först det fasta med alla Pytonorm objektinformation och för det andra ett block i variabel storlek för data som gör dem ännu snabbare.
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>
Föränderlig lista vs. oföränderliga tupler
I Pytonorm , både listor och tuplar stöder en rad operationer, inklusive indexering, skivning, sammanlänkning och mer. Det finns dock vissa skillnader mellan de operationer som är tillgängliga för listor och tupler på grund av deras föränderlighet respektive oföränderlighet.
Python-indexering
Både listor och tupler låter dig komma åt enskilda element med hjälp av deras index, från 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 skivning
Både listor och tupler låter dig extrahera en delmängd av element med hjälp av skivning.
lyssna portPython3
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)>
Pythonsammankoppling
Både listor och tupler kan sammanfogas med operatorn +.
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)>
Notera - Det finns dock vissa operationer som endast är tillgängliga för listor, på grund av deras föränderlighet.
Python Bifoga
Listor kan läggas till med nya element med metoden append().
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
Listor kan också utökas med en annan lista med metoden extend() .
sortera arraylist i javaPython3
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 Ta bort
Listor kan ta bort element med metoden remove().
Python3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
Produktion
[1, 3, 4]>
När ska man använda Tuples Over Lists?
I Pytonorm , tupler och listor används båda för att lagra datasamlingar, men de har några viktiga skillnader. Här är några situationer där du kanske vill använda tupler istället för listor –
Oföränderlig data – Tuples är oföränderliga, så när de väl har genererats kan deras innehåll inte ändras. Detta gör tuples till ett lämpligt alternativ för att lagra information som inte bör ändras, såsom inställningsinställningar, konstanta värden eller annan information som bör förbli oförändrad medan ditt program körs.
Prestanda – Tuples är lättare än listor och kan vara snabbare att generera, komma åt och iterera igenom eftersom de är oföränderliga. Att använda en tuppel kan vara effektivare än att använda en lista om du har en enorm samling av data som du behöver lagra, hämta och använda regelbundet och att data inte behöver ändras.
Dataintegritet - Genom att se till att datans struktur och innehåll förblir konsekventa kan tupler användas för att säkerställa dataintegritet. För att se till att den som ringer är medveten om hur mycket data som kan förväntas, till exempel om en funktion returnerar ett visst antal värden, du kanske vill returnera dem som en tupel snarare än en lista.