logo

Kuinka alustaa luettelo Pythonissa?

Mikä tahansa Python-objekti voi sisältyä Python-luettelon järjestettävien arvojen ryhmään. Koska luettelo on Pythonissa muuttuva tietorakenne, voimme lisätä, poistaa tai muuttaa tämän säilön olemassa olevia arvoja. Toisin kuin joukot, luettelo sallii useita saman arvon esiintymiä ja käsittelee jokaista eri kohteena. Tässä opetusohjelmassa opimme alustamaan luetteloobjektin Pythonissa.

Alusta luettelot hakasulkeilla

Hakasulkeiden käyttö on yksi tapa alustaa luettelo ilman arvoja, jos haluamme rakentaa Pythonissa tyhjän luettelon ilman arvoja. Listan alustamiseksi meidän tarvitsee vain määrittää hakasulkeiden pari alkioarvojen kanssa tai ilman.

Koodi

tyhjennä välimuisti npm
 # Python program to show how to initialize a list using square brackets # Initializing an empty list list_ = [] print('An empty list: ', list_) # Initializing a list with some values list_ = [1, 3, 5, 7] print('A non-Empty list: ', list_) 

Lähtö:

 An empty list: [] A non-Empty list: [1, 3, 5, 7] 

Built-in list()-funktion käyttäminen luettelon alustamiseen

Pythonin list()-funktio muodostaa listan, iteroitavan objektin. Siksi tämä on toinen tapa luoda tyhjä Python-luettelo ilman mitään tietoja tällä koodauskielellä.

Iteraattoriobjekti, iteroinnin mahdollistava sekvenssi tai säilö voivat kaikki olla iteroitavia. Jos syöttöä ei anneta, luodaan uusi tyhjä lista.

Koodi

 # Python program to show how to initialize a list using the built-in list function # Initializing an empty list list_ = list() print('An empty list: ', list_) # Initializing a non-empty list list_ = list([1, 2, 3]) print('A non-empty list: ', list_) 

Lähtö:

 An empty list: [] A non-empty list: [1, 2, 3] 

Hakasulkumenetelmää suositaan sisäänrakennetun list()-funktion sijaan, koska se on selkeämpi ja havainnollisempi.

Listan ymmärtäminen luettelon alustamiseen

Voimme käyttää luettelon ymmärtämisen lähestymistapaa luettelon oletusparametrien asettamiseen. Se sisältää lausekkeen hakasulkeissa, for-lausekkeen ja valinnaisen if-lausekkeen, joka voi seurata tai ei. Mikä tahansa kohde, jonka haluamme lisätä luetteloon, voidaan kirjoittaa lausekkeeksi. Lauseke olisi 0, jos käyttäjä alustaisi luettelon nolilla.

kuinka lukea csv-tiedostosta javassa

Listan ymmärtäminen on tyylikäs, suoraviivainen ja tunnettu lähestymistapa iteraattoriin perustuvan luettelon muodostamiseen.

Koodi

 # Python program to show how to initialize a list using list comprehension # Initializing a list list_ = [item for item in range(10)] print('The list was created using list comprehension: ', list_) 

Lähtö:

 The list was created using list comprehension: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

Tämä tekniikka alustaa luettelot paljon nopeammin kuin Pythonin for- ja while-silmukat.

Alusta Python-luettelo käyttämällä *-operaattoria

Toinen tapa alustaa luettelo Pythonissa on käyttää *-operaattoria. Se luo luettelon, jossa on useita arvoja. Tämän operaattorin syntaksi on [element] * n. Tässä n on kuinka monta kertaa haluamme toistaa elementin luettelossa.

Tämä menetelmä auttaa, kun haluamme alustaa ennalta määritettyjen pituuksien luettelon.

Koodi

 # Python program to show how to use the * operator to initialize a list list_ = [5]*10 print (list) 

Lähtö:

 [5, 5, 5, 5, 5, 5, 5, 5, 5] 

Tämä menetelmä on erittäin tehokas ja nopein tapa luoda luettelo. Vertailemme menetelmien käyttämää aikaa myöhemmin tässä opetusohjelmassa.

Ainoa haitta tämän operaattorin käyttämisessä Python-luettelon alustamiseen on se, että meidän on luotava 2D-lista, koska tämä menetelmä luo vain matalan luettelon, eli se luo yhden luetteloobjektin ja kaikki indeksit viittaavat tähän. esine, joka on erittäin epämukava. Tästä syystä käytämme luetteloiden ymmärtämistä, kun meidän on luotava 2D-luetteloita.

For Loopin ja append()

Luomme tyhjän luettelon ja suoritamme for-silmukan kohteiden lisäämiseksi käyttämällä luettelon append()-funktiota.

javascript

Koodi

 # Python program to show how to use a for loop to initialize a list arr = [] for i in range(1000): arr.append(0) 

While-silmukan käyttäminen luettelon alustamiseen

Voimme käyttää while-silmukkaa aivan kuten käytimme silmukkaa listan alustamiseen.

Koodi

 # Python program to initialize a list using a while loop # Creating an empty list array = [] # Declaring counter variables i = 0 # Starting a while loop while(i <10): array.append(0) i +="1" print(array) < pre> <p> <strong>Output:</strong> </p> <pre> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] </pre> <h2>Time Complexity</h2> <p>Let us now see how long each of the described approaches will take. We will initialize a list of 100000 elements 1000 times. We will calculate the average time each method takes to perform this task.</p> <p> <strong>Code</strong> </p> <pre> # Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print('the average execution time of loop is: ', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:></pre></10):>

Aika monimutkaisuus

Katsotaan nyt, kuinka kauan kukin kuvatuista lähestymistavoista kestää. Alustamme 100 000 elementin listan 1000 kertaa. Laskemme kunkin menetelmän keskimääräisen ajan tämän tehtävän suorittamiseen.

Koodi

 # Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print(\'the average execution time of loop is: \', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:>

Voimme nähdä, että for ja while -silmukat vievät lähes saman suoritusajan. For-silmukka on kuitenkin hieman parempi kuin while-silmukka.

Listan ymmärtäminen näyttää paljon paremman suorituskyvyn kuin for- ja while-silmukat. Se on 2-3 kertaa nopeampi kuin silmukat. Siten listan ymmärtäminen on paljon tehokkaampaa kuin listojen append()-funktio.

*-operaattori on osoittanut parhaan suorituskyvyn kaikista neljästä menetelmästä.