logo

Kako inicializirati seznam v Pythonu?

Vsak objekt Python je lahko vsebovan v skupini urejenih vrednosti na seznamu Python. Ker je seznam spremenljiva podatkovna struktura v Pythonu, lahko dodamo, odstranimo ali spremenimo obstoječe vrednosti v tem vsebniku. V nasprotju z nizi seznam omogoča številne primerke iste vrednosti in vsakega obravnava kot drugačen element. V tej vadnici se bomo naučili inicializirati objekt seznama v Pythonu.

Inicializirajte sezname z oglatimi oklepaji

Uporaba oglatega oklepaja je eden od načinov inicializacije seznama brez vrednosti, če želimo sestaviti prazen seznam v Pythonu brez vrednosti. Za inicializacijo seznama moramo podati samo par oglatih oklepajev z ali brez vrednosti elementov.

Koda

upravitelj opravil linux
 # 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_) 

Izhod:

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

Uporaba vgrajene funkcije list() za inicializacijo seznama

Pythonova funkcija list() sestavi seznam, predmet, ki ga je mogoče ponoviti. Zato je to še en način za ustvarjanje praznega seznama Python brez podatkov v tem kodirnem jeziku.

Iteratorski objekt, zaporedje, ki omogoča iteracijo, ali vsebnik so lahko iterativni. Če ni podanega nobenega vnosa, se ustvari nov prazen seznam.

Koda

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

Izhod:

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

Metoda oglatih oklepajev ima prednost pred vgrajeno funkcijo list(), ker je jasnejša in bolj nazorna.

Uporaba razumevanja seznama za inicializacijo seznama

Za nastavitev privzetih parametrov seznama lahko uporabimo pristop z razumevanjem seznama. Vsebuje izraz v oglatih oklepajih, stavek for in neobvezen stavek if, ki lahko sledi ali ne. Vsak element, ki ga želimo dodati na seznam, lahko zapišemo kot izraz. Izraz bi bil 0, če bi uporabnik inicializiral seznam z ničlami.

vzmetna arhitektura zagona

Razumevanje seznama je eleganten, preprost in dobro znan pristop k sestavljanju seznama, ki temelji na iteratorju.

Koda

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

Izhod:

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

Ta tehnika inicializira sezname veliko hitreje kot Pythonove zanke for in while.

Inicializirajte seznam Python z uporabo operatorja *

Drug način inicializacije seznama v Pythonu je uporaba operatorja *. Ustvari seznam z več vrednostmi. Sintaksa uporabe tega operatorja je [element] * n. Tukaj je n, kolikokrat želimo ponoviti element na seznamu.

Ta metoda pomaga, ko želimo inicializirati seznam vnaprej določenih dolžin.

Koda

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

Izhod:

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

Ta metoda je zelo učinkovit in najhitrejši način za ustvarjanje seznama. Kasneje v tej vadnici bomo primerjali čas, ki ga porabijo metode.

Edina pomanjkljivost uporabe tega operatorja za inicializacijo seznama Python je, ko moramo ustvariti 2D seznam, saj bo ta metoda ustvarila samo plitek seznam, tj. ustvarila bo en sam objekt seznama in vsi indeksi se bodo nanašali na to predmet, ki bo zelo neprijeten. Zato uporabljamo razumevanje seznamov, ko moramo ustvariti 2D sezname.

Uporaba zanke for in append()

Ustvarili bomo prazen seznam in zagnali zanko for za dodajanje elementov s funkcijo append() seznama.

Koda

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

Uporaba zanke While za inicializacijo seznama

Za inicializacijo seznama lahko uporabimo zanko while, tako kot smo uporabili zanko for.

Koda

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

Časovna zapletenost

Poglejmo zdaj, koliko časa bo trajal vsak od opisanih pristopov. Inicializirali bomo seznam 100000 elementov 1000-krat. Izračunali bomo povprečni čas, ki ga vsaka metoda porabi za izvedbo te naloge.

Koda

 # 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 lahko, da zanki for in while trajata skoraj enak čas izvajanja. Vendar je zanka for nekoliko boljša od zanke while.

niz compareto

Razumevanje seznama kaže veliko boljšo zmogljivost kot zanke for in while. Je 2-3 krat hitrejši od zank. Tako je razumevanje seznamov veliko učinkovitejše od funkcije append() seznamov.

Operator * je pokazal najboljšo zmogljivost od vseh štirih metod.