logo

Razlika med seznamom in tuplem v Pythonu

Seznami in tuple v Pythonu sta dva razreda podatkovnih struktur Python. Struktura seznama je dinamična in se zlahka spremeni, medtem ko je struktura tuple statična in je ni mogoče spremeniti. To pomeni, da je tuple na splošno hitrejši od seznama. Seznami so označeni z oglatimi oklepaji, tuple pa z oklepaji.

Razlike med Listom in Tuple v Pythonu

Sno

SEZNAM



TUPLE

1 Seznami so spremenljiv Tuples so nespremenljive
2Posledica ponovitev je zamudnaPosledice ponovitev so sorazmerno hitrejše
3Seznam je boljši za izvajanje operacij, kot sta vstavljanje in brisanje.Podatkovni tip Tuple je primeren za dostop do elementov
4Seznami porabijo več pomnilnikaTuple porabi manj pomnilnika v primerjavi s seznamom
5Seznami imajo več vgrajenih metodTuple nima veliko vgrajenih metod.
6Večja je verjetnost, da bo prišlo do nepričakovanih sprememb in napakKer se tuple ne spreminjajo, so veliko manj nagnjene k napakam.

Python List proti Python Tuple

Preizkusite, ali so tuple nespremenljive in seznami spremenljivi

Tukaj bomo primerjali teste spremenljivosti seznama in tuple.

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

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

Tukaj lahko vidimo tuple ni mogoče spremeniti.

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

Izhod:

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

Kateri je boljši seznam ali tuple v Pythonu?

Da preizkusimo ta odgovor, zaženimo nekaj operacij na Python Tuple in Python List. To nam bo dalo boljšo predstavo o tem, kateri je boljši seznam ali tuple v Pythonu.

Preizkusite, ali so Tuples pomnilniško učinkoviti

Ker so tuple shranjene v enem pomnilniškem bloku, zato ne potrebujejo dodatnega prostora za nove objekte, medtem ko so seznami dodeljeni v dveh blokih, prvem fiksnem z vsemi Python informacije o objektu in drugič blok spremenljive velikosti za podatke.

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

Izhod
96 80>

Preizkusite, ali je implikacija iteracij sorazmerno hitrejša v Tuples

Ker so tuple shranjene v enem pomnilniškem bloku, zato ne potrebujejo dodatnega prostora za nove objekte, saj so nespremenljive, medtem ko so seznami dodeljeni v dveh blokih, prvem fiksnem z vsemi Python podatke o objektu in drugič blok spremenljive velikosti za podatke, zaradi česar so še hitrejši.

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

Izhod

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

Spremenljivi seznam proti nespremenljivim tuplem

noter Python , tako seznami kot tuple podpirajo vrsto operacij, vključno z indeksiranjem, rezanjem, veriženjem in več. Vendar pa obstaja nekaj razlik med operacijami, ki so na voljo za sezname in tuple, zaradi njihove spremenljivosti oziroma nespremenljivosti.

Python indeksiranje

Tako seznami kot tuple vam omogočajo dostop do posameznih elementov z njihovim indeksom, začenši z 0.

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

Izhod
1 5>

Rezanje v Pythonu

Tako seznami kot tuple vam omogočajo ekstrahiranje podnabora elementov z uporabo rezanja.

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

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

Python veriženje

Tako sezname kot tuple je mogoče povezati z operatorjem +.

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

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

Opomba - Vendar pa obstajajo nekatere operacije, ki so zaradi njihove spremenljivosti na voljo samo za sezname.

Python Append

Seznamom je mogoče dodati nove elemente z uporabo metode append().

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

Izhod
[1, 2, 3, 4]>

Python Extend

Sezname je mogoče razširiti tudi z drugim seznamom z uporabo metode extend().

vnos niza v javo
Python3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

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

Odstrani Python

Seznami lahko odstrani elemente z uporabo metode remove().

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

Izhod
[1, 3, 4]>

Kdaj uporabiti torke namesto seznamov?

noter Python , tuple in seznami se uporabljajo za shranjevanje zbirk podatkov, vendar imajo nekaj pomembnih razlik. Tu je nekaj situacij, v katerih boste morda želeli uporabiti tuple namesto seznamov –

Nespremenljivi podatki Tuples so nespremenljive, zato njihove vsebine, ko so ustvarjene, ni več mogoče spremeniti. Zaradi tega so tuple primerna možnost za shranjevanje informacij, ki se ne bi smele spreminjati, kot so nastavitve nastavitev, stalne vrednosti ali druge informacije, ki bi morale ostati enake, medtem ko se vaš program izvaja.

Izvedba Tuples so lažji od seznamov in jih je morda hitreje ustvariti, dostopati do njih in ponavljati, saj so nespremenljivi. Uporaba tuple je lahko bolj učinkovita kot uporaba a seznam če imate ogromno zbirko podatkov, ki jih morate redno shranjevati, pridobivati ​​in uporabljati in teh podatkov ni treba spreminjati.

Celovitost podatkov - Z zagotavljanjem, da struktura in vsebina podatkov ostaneta dosledni, je mogoče uporabiti tuple za zagotovitev celovitosti podatkov. Za zagotovitev, da se klicatelj zaveda, koliko podatkov lahko pričakuje, na primer, če je funkcija vrača nastavljeno količino vrednosti, jih boste morda želeli vrniti kot torko in ne kot seznam.