logo

Kaip inicijuoti sąrašą Python?

Bet kuris Python objektas gali būti įtrauktas į sutvarkytų reikšmių grupę Python sąraše. Kadangi sąrašas yra kintama Python duomenų struktūra, galime pridėti, pašalinti arba pakeisti esamas šio konteinerio reikšmes. Priešingai nei rinkiniai, sąraše leidžiama daug tos pačios vertės atvejų ir kiekvienas traktuojamas kaip skirtingas elementas. Šioje pamokoje sužinosime, kaip inicijuoti sąrašo objektą Python.

Inicijuokite sąrašus naudodami laužtinius skliaustus

Naudoti laužtinius skliaustus yra vienas iš būdų inicijuoti sąrašą be reikšmių, jei norime Python sukurti tuščią sąrašą be reikšmių. Norėdami inicijuoti sąrašą, turime nurodyti tik porą laužtinių skliaustų su elementų reikšmėmis arba be jų.

Kodas

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

Išvestis:

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

Funkcijos Built-in list() naudojimas sąrašui inicijuoti

Python funkcija list() sudaro sąrašą, kartotinį objektą. Todėl tai yra dar vienas būdas sukurti tuščią Python sąrašą be jokių duomenų šia kodavimo kalba.

2-1 multiplekseris

Iteratoriaus objektas, seka, įgalinanti iteraciją, arba konteineris gali būti kartojami. Jei nepateikiama įvestis, sudaromas naujas tuščias sąrašas.

Kodas

misija neįmanoma visi filmai
 # 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_) 

Išvestis:

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

Lakštinių skliaustų metodas yra palankesnis už įtaisytąją list() funkciją, nes jis yra aiškesnis ir iliustratyvesnis.

Sąrašo supratimo naudojimas sąrašui inicijuoti

Norėdami nustatyti numatytuosius sąrašo parametrus, galime naudoti sąrašo supratimo metodą. Jį sudaro laužtiniuose skliaustuose esantis posakis, teiginys for ir neprivalomas if teiginys, kuris gali būti arba ne. Bet kuris elementas, kurį norime įtraukti į sąrašą, gali būti parašytas kaip išraiška. Išraiška būtų 0, jei vartotojas inicijuotų sąrašą nuliais.

Sąrašo supratimas yra elegantiškas, paprastas ir gerai žinomas būdas sudaryti sąrašą, pagrįstą iteratoriumi.

Kodas

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

Išvestis:

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

Ši technika inicijuoja sąrašus daug greičiau nei Python for ir while kilpos.

Inicijuokite Python sąrašą naudodami * operatorių

Kitas būdas inicijuoti sąrašą Python yra naudoti operatorių *. Jis sukuria sąrašą su keliomis reikšmėmis. Šio operatoriaus sintaksė yra [element] * n. Čia n yra skaičius, kiek kartų norime pakartoti elementą sąraše.

jei kitaip jei kitaip java

Šis metodas padeda, kai norime inicijuoti iš anksto nustatytų ilgių sąrašą.

Kodas

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

Išvestis:

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

Šis metodas yra labai efektyvus ir greičiausias būdas sudaryti sąrašą. Vėliau šioje mokymo programoje palyginsime metodų naudojimo laiką.

kmp algoritmas

Vienintelis trūkumas naudojant šį operatorių Python sąrašui inicijuoti yra tada, kai turime sukurti 2D sąrašą, nes šis metodas sukurs tik negilų sąrašą, t. y. bus sukurtas vienas sąrašo objektas, o visi indeksai nurodys jį objektas, kuris bus labai nepatogus. Štai kodėl mes naudojame sąrašo supratimą, kai turime kurti 2D sąrašus.

Naudojant for Loop ir append ()

Sukursime tuščią sąrašą ir paleisime for kilpą, kad pridėtume elementus naudodami sąrašo funkciją append().

Kodas

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

Nors ciklo naudojimas sąrašui inicijuoti

Sąrašui inicijuoti galime naudoti ciklą while, kaip ir kilpą.

Kodas

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

Laiko sudėtingumas

Dabar pažiūrėkime, kiek laiko užtruks kiekvienas iš aprašytų metodų. 100 000 elementų sąrašą inicijuosime 1000 kartų. Apskaičiuosime vidutinį kiekvieno metodo laiką šiai užduočiai atlikti.

religijų sąrašą

Kodas

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

Matome, kad for ir while ciklai trunka beveik tą patį vykdymo laiką. Tačiau for ciklas yra šiek tiek geresnis nei ciklas while.

Sąrašo supratimas rodo daug geresnį našumą nei for ir while kilpos. Jis yra 2-3 kartus greitesnis nei kilpos. Taigi, sąrašų supratimas yra daug efektyvesnis nei sąrašų funkcija append().

Operatorius * parodė geriausią našumą iš visų keturių metodų.