logo

Kako inicijalizirati popis u Pythonu?

Svaki Python objekt može biti sadržan u grupi poredanih vrijednosti na Python popisu. Budući da je popis promjenjiva struktura podataka u Pythonu, možemo dodavati, uklanjati ili mijenjati postojeće vrijednosti u ovom spremniku. Za razliku od skupova, popis dopušta brojne instance iste vrijednosti i svaku tretira kao drugu stavku. U ovom vodiču naučit ćemo kako inicijalizirati objekt popisa u Pythonu.

Inicijalizirajte popise pomoću uglastih zagrada

Korištenje uglate zagrade jedan je od načina za inicijaliziranje popisa bez vrijednosti ako želimo konstruirati prazan popis u Pythonu bez vrijednosti. Da bismo inicijalizirali popis, trebamo samo navesti par uglatih zagrada sa ili bez vrijednosti stavke.

Kodirati

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

Izlaz:

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

Korištenje ugrađene funkcije list() za inicijaliziranje popisa

Pythonova funkcija list() konstruira popis, objekt koji se može ponavljati. Stoga je ovo još jedan način za stvaranje praznog Python popisa bez ikakvih podataka u ovom kodnom jeziku.

Objekt iteratora, niz koji omogućuje iteraciju ili spremnik mogu biti iterabilni. Nova prazna lista se konstruira ako nema unosa.

Kodirati

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

Izlaz:

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

Metoda uglatih zagrada ima prednost u odnosu na ugrađenu funkciju list() jer je jasnija i ilustrativnija.

csma i csma cd

Korištenje razumijevanja popisa za inicijaliziranje popisa

Možemo upotrijebiti pristup razumijevanja popisa za postavljanje zadanih parametara popisa. Sastoji se od izraza u uglastim zagradama, naredbe for i neobavezne naredbe if koja može, ali ne mora slijediti. Bilo koja stavka koju želimo dodati na popis može se napisati kao izraz. Izraz bi bio 0 ako bi korisnik inicijalizirao popis nulama.

pročitajte csv datoteku u Javi

Razumijevanje popisa elegantan je, jednostavan i dobro poznat pristup konstruiranju popisa koji se temelji na iteratoru.

Kodirati

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

Izlaz:

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

Ova tehnika inicijalizira popise mnogo brže od Pythonovih for i while petlji.

Inicijalizirajte Python popis pomoću operatora *

Drugi način inicijalizacije popisa u Pythonu je korištenje * operatora. Stvara popis s više vrijednosti. Sintaksa korištenja ovog operatora je [element] * n. Ovdje je n broj puta koji želimo ponoviti element na listi.

Ova metoda pomaže kada želimo inicijalizirati popis unaprijed definiranih duljina.

Kodirati

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

Izlaz:

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

Ova metoda je vrlo učinkovit i najbrži način za izradu popisa. Usporedit ćemo vrijeme potrebno metodama kasnije u ovom vodiču.

Jedina mana upotrebe ovog operatora za inicijaliziranje Python liste je kada moramo stvoriti 2D listu, jer će ova metoda stvoriti samo plitku listu, tj., stvorit će jedan objekt liste, a svi indeksi će se odnositi na to objekt koji će biti vrlo nezgodan. Zbog toga koristimo razumijevanje popisa kada moramo izraditi 2D popise.

Korištenje for petlje i append()

Napravit ćemo prazan popis i pokrenuti for petlju za dodavanje stavki pomoću funkcije append() popisa.

Kodirati

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

Korištenje while petlje za inicijalizaciju popisa

Možemo koristiti while petlju kao što smo koristili for petlju za inicijaliziranje liste.

Kodirati

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

Vremenska složenost

Pogledajmo sada koliko će svaki od opisanih pristupa trajati. Inicijalizirat ćemo listu od 100 000 elemenata 1000 puta. Izračunat ćemo prosječno vrijeme potrebno svakoj metodi za izvođenje ovog zadatka.

Kodirati

 # 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:>

Vidimo da petlje for i while zahtijevaju gotovo isto vrijeme izvršenja. Međutim, for petlja je malo bolja od while petlje.

Razumijevanje popisa pokazuje mnogo bolju izvedbu od for i while petlji. 2-3 puta je brži od petlji. Stoga je razumijevanje popisa puno učinkovitije od funkcije append() popisa.

Operator * pokazao je najbolju izvedbu od sve četiri metode.