logo

Kā inicializēt sarakstu Python?

Jebkuru Python objektu var ietvert sakārtotu vērtību grupā Python sarakstā. Tā kā šis saraksts ir mainīga Python datu struktūra, mēs varam pievienot, noņemt vai mainīt esošās vērtības šajā konteinerā. Atšķirībā no kopām sarakstā ir atļauti daudzi vienādas vērtības gadījumi, un katrs tiek uzskatīts par atšķirīgu vienumu. Šajā apmācībā mēs uzzināsim, kā inicializēt saraksta objektu programmā Python.

Inicializējiet sarakstus, izmantojot kvadrātiekavas

Kvadrātiekavu izmantošana ir viens no veidiem, kā inicializēt sarakstu bez vērtībām, ja Python vēlamies izveidot tukšu sarakstu bez vērtībām. Lai inicializētu sarakstu, mums ir jānorāda tikai kvadrātiekavu pāris ar vai bez vienumu vērtībām.

Kods

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

Izvade:

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

Funkcijas Built-in list() izmantošana, lai inicializētu sarakstu

Python funkcija list() veido sarakstu, iterējamu objektu. Tāpēc šis ir vēl viens veids, kā šajā kodēšanas valodā izveidot tukšu Python sarakstu bez jebkādiem datiem.

Iteratora objekts, secība, kas iespējo iterāciju, vai konteiners var būt iterējami. Ja netiek ievadīta nekāda ievade, tiek izveidots jauns tukšs saraksts.

Kods

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

Izvade:

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

Kvadrātiekavu metode tiek dota priekšroka salīdzinājumā ar iebūvēto funkciju list(), jo tā ir skaidrāka un ilustratīvāka.

kā palaist skriptu Linux

Saraksta izpratnes izmantošana, lai inicializētu sarakstu

Mēs varam izmantot saraksta izpratnes pieeju, lai iestatītu saraksta noklusējuma parametrus. Tajā ir kvadrātiekavās ievietota izteiksme, priekšraksts for un neobligāts if priekšraksts, kas var sekot vai nesekot. Jebkuru vienumu, ko vēlamies pievienot sarakstam, var uzrakstīt kā izteiksmi. Izteiksme būtu 0, ja lietotājs inicializētu sarakstu ar nullēm.

saraksta piemērs java

Saraksta izpratne ir eleganta, vienkārša un labi zināma pieeja, lai izveidotu sarakstu, kura pamatā ir iterators.

Kods

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

Izvade:

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

Šis paņēmiens sarakstus inicializē daudz ātrāk nekā Python for un while cilpas.

Inicializējiet Python sarakstu, izmantojot * operatoru

Vēl viens veids, kā inicializēt sarakstu Python, ir izmantot operatoru *. Tas izveido sarakstu ar vairākām vērtībām. Šī operatora izmantošanas sintakse ir [element] * n. Šeit n ir reižu skaits, kad mēs vēlamies atkārtot elementu sarakstā.

Šī metode palīdz, ja vēlamies inicializēt iepriekš noteiktu garumu sarakstu.

Kods

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

Izvade:

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

Šī metode ir ļoti efektīva un ātrākais veids, kā izveidot sarakstu. Mēs salīdzināsim laiku, kas nepieciešams metodēm vēlāk šajā apmācībā.

java nejaušo skaitļu ģenerators

Vienīgais mīnuss, izmantojot šo operatoru Python saraksta inicializācijai, ir tad, kad mums ir jāizveido 2D saraksts, jo šī metode izveidos tikai seklu sarakstu, t.i., tā izveidos vienu saraksta objektu, un visi indeksi attieksies uz to. objekts, kas būs ļoti neērts. Tāpēc, veidojot 2D sarakstus, mēs izmantojam sarakstu izpratni.

Izmantojot for Loop un pievienot ()

Mēs izveidosim tukšu sarakstu un izpildīsim for cilpu, lai pievienotu vienumus, izmantojot saraksta funkciju append().

Kods

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

Kamēr cilpas izmantošana saraksta inicializācijai

Lai inicializētu sarakstu, mēs varam izmantot cilpu, tāpat kā cilpu.

Kods

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

Laika sarežģītība

Tagad redzēsim, cik ilgu laiku prasīs katra no aprakstītajām pieejām. Mēs inicializēsim sarakstu ar 100 000 elementiem 1000 reizes. Mēs aprēķināsim vidējo laiku, kas katrai metodei nepieciešams šī uzdevuma veikšanai.

Kods

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

Mēs redzam, ka for un while cilpas aizņem gandrīz tādu pašu izpildes laiku. Tomēr for cilpa ir nedaudz labāka par while cilpu.

Saraksta izpratne parāda daudz labāku veiktspēju nekā for un while cilpas. Tas ir 2-3 reizes ātrāks nekā cilpas. Tādējādi sarakstu izpratne ir daudz efektīvāka nekā sarakstu append() funkcija.

Operators * ir uzrādījis vislabāko veiktspēju no visām četrām metodēm.