logo

Ero Listan ja Tuplen välillä Pythonissa

Listat ja Tuples Pythonissa ovat kaksi Python-tietorakenteiden luokkaa. Listan rakenne on dynaaminen ja helposti vaihdettavissa, kun taas monikkorakenne on staattinen eikä sitä voi muuttaa. Tämä tarkoittaa, että monikko on yleensä nopeampi kuin luettelo. Listat on merkitty hakasulkeilla ja monikot suluilla.

Erot Listan ja Tuplen välillä Pythonissa

Sno



LISTA

TUPLE

1 Luettelot ovat vaihteleva Tuples ovat muuttumattomia
2Iteraatioiden merkitys on aikaa vieväIteraatioiden vaikutus on verrattain nopeampi
3Luettelo sopii paremmin toimintojen, kuten lisäämisen ja poistamisen, suorittamiseen.Tuple-tietotyyppi on sopiva elementtien käyttämiseen
4Listat kuluttavat enemmän muistiaTuple kuluttaa vähemmän muistia luetteloon verrattuna
5Listoissa on useita sisäänrakennettuja menetelmiäTuplessa ei ole monia sisäänrakennettuja menetelmiä.
6Odottamattomia muutoksia ja virheitä tapahtuu todennäköisemminKoska monikot eivät muutu, ne ovat paljon vähemmän virhealttiita.

Python List vs Python Tuple

Testaa, ovatko monikot muuttumattomia ja listat muuttumattomia

Tässä aiomme verrata luetteloa ja monimutkaisuustestejä.



Python 3
# 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)>

Lähtö
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>

Näemme täällä monikko ei voi muokata.

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

Lähtö:

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

Kumpi on parempi lista tai tuple Pythonissa?

Testaaksesi tämän vastauksen, suoritetaan joitain toimintoja Python-tuplessa ja Python-luettelossa. Tämä antaa meille paremman käsityksen siitä, kumpi on parempi luettelo tai monikko Pythonissa.



Testaa, ovatko Tuples muistitehokkaita

Koska monikot tallennetaan yhteen muistilohkoon, ne eivät vaadi ylimääräistä tilaa uusille objekteille, kun taas listat on allokoitu kahteen lohkoon, ensin kiinteään, jossa on kaikki Python objektitiedot ja toiseksi muuttuvan kokoisen lohkon tiedoille.

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

Lähtö
96 80>

Testaa, onko iteraatioiden vaikutus verrattain nopeampi Tuplesissa

Koska monikot tallennetaan yhteen muistilohkoon, ne eivät siksi vaadi ylimääräistä tilaa uusille objekteille, koska ne ovat muuttumattomia, kun taas listat on allokoitu kahteen lohkoon, ensin kiinteään lohkoon, jossa on kaikki Python objektitiedot ja toiseksi muuttuvan kokoinen lohko tiedoille, mikä tekee niistä entistä nopeampia.

Python 3
# 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)>

Lähtö

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

Muuttuva lista vs. muuttumattomat tuplet

Sisään Python , sekä luettelot että monikot tukevat useita toimintoja, mukaan lukien indeksointi, viipalointi, ketjuttaminen ja paljon muuta. Listojen ja monikoiden operaatioiden välillä on kuitenkin joitain eroja niiden muuttuvuuden ja muuttumattomuuden vuoksi.

Python-indeksointi

Sekä luettelot että monikot sallivat sinun käyttää yksittäisiä elementtejä niiden indeksin avulla, alkaen 0:sta.

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

Lähtö
1 5>

Python-leikkaus

Sekä luettelot että monikot mahdollistavat elementtien osajoukon poimia viipaloinnin avulla.

esimerkki binaarihakupuusta
Python 3
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)>

Lähtö
[2, 3] (6, 7, 8)>

Python-ketjutus

Sekä listat että monikot voidaan ketjuttaa käyttämällä +-operaattoria.

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

Lähtö
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>

Huomautus - Jotkin toiminnot ovat kuitenkin käytettävissä vain listoille niiden muuttuvuuden vuoksi.

Python-liite

Listoja voidaan liittää uusilla elementeillä append()-metodilla.

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

Lähtö
[1, 2, 3, 4]>

Python Extend

Listoja voidaan myös laajentaa toisella listalla käyttämällä extend()-menetelmää.

lista solmu javassa
Python 3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>

Lähtö
[1, 2, 3, 4, 5, 6]>

Python Poista

Luettelot voidaan poistaa elementtejä käyttämällä remove()-menetelmää.

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

Lähtö
[1, 3, 4]>

Milloin Tuples Over -listoja tulee käyttää?

Sisään Python , monikoita ja listoja käytetään molempien tietokokoelmien tallentamiseen, mutta niillä on joitain tärkeitä eroja. Tässä on joitain tilanteita, joissa saatat haluta käyttää monikoita listojen sijaan –

Muuttumaton data Tuples ovat muuttumattomia, joten kun ne on luotu, niiden sisältöä ei voi muuttaa. Tämä tekee monikoista sopivan vaihtoehdon sellaisten tietojen tallentamiseen, joiden ei pitäisi muuttua, kuten asetusasetukset, vakioarvot tai muut tiedot, joiden pitäisi pysyä samana ohjelman ollessa käynnissä.

Esitys Tuples ovat kevyempiä kuin luettelot, ja niitä voi olla nopeampi luoda, käyttää ja iteroida, koska ne ovat muuttumattomia. Tuplen käyttäminen voi olla tehokkaampaa kuin a lista jos sinulla on valtava kokoelma tietoja, jotka sinun on tallennettava, haettava ja käytettävä säännöllisesti ja joita ei tarvitse muuttaa.

Tietojen eheys - Varmistamalla, että datan rakenne ja sisältö pysyvät johdonmukaisina, voidaan käyttää tupleja tietojen eheyden varmistamiseksi. Varmistaaksesi, että soittaja on tietoinen siitä, kuinka paljon dataa on odotettavissa, esimerkiksi jos toiminto palaa tietyn määrän arvoja, saatat haluta palauttaa ne monikkona luettelon sijaan.