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 |
2 | Iteraatioiden merkitys on aikaa vievä | Iteraatioiden vaikutus on verrattain nopeampi |
3 | Luettelo sopii paremmin toimintojen, kuten lisäämisen ja poistamisen, suorittamiseen. | Tuple-tietotyyppi on sopiva elementtien käyttämiseen |
4 | Listat kuluttavat enemmän muistia | Tuple kuluttaa vähemmän muistia luetteloon verrattuna |
5 | Listoissa on useita sisäänrakennettuja menetelmiä | Tuplessa ei ole monia sisäänrakennettuja menetelmiä. |
6 | Odottamattomia muutoksia ja virheitä tapahtuu todennäköisemmin | Koska 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 binaarihakupuustaPython 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 javassaPython 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.