logo

Како иницијализовати листу у Питхон-у?

Било који Питхон објекат може бити садржан у групи наређених вредности у Питхон листи. Пошто је листа променљива структура података у Питхон-у, можемо додати, уклонити или изменити постојеће вредности у овом контејнеру. За разлику од скупова, листа дозвољава бројне инстанце исте вредности и сваку третира као различиту ставку. У овом водичу ћемо научити како да иницијализујемо објекат листе у Питхон-у.

Иницијализирајте листе користећи угласте заграде

Коришћење угластих заграда је један од начина да иницијализујемо листу без вредности ако желимо да направимо празну листу у Питхон-у без вредности. Да бисмо иницијализовали листу, потребно је само да наведемо пар угластих заграда са или без вредности ставке.

Код

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

Излаз:

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

Коришћење функције Буилт-ин лист() за иницијализацију листе

Пајтонова функција лист() конструише листу, објекат који се може понављати. Дакле, ово је још један начин да креирате празну Пајтон листу без икаквих података у овом језику кодирања.

Објекат итератора, секвенца која омогућава итерацију или контејнер могу бити итерабле. Нова празна листа се конструише ако нема уноса.

Код

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

Излаз:

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

Метод углатих заграда је фаворизован у односу на уграђену функцију лист() јер је јаснији и илустративнији.

преордер траверсал

Коришћење разумевања листе за иницијализацију листе

Можемо користити приступ разумевања листе да бисмо поставили подразумеване параметре листе. Састоји се од израза затвореног у угластим заградама, израза фор и опционог иф исказа који може, али не мора да следи. Било која ставка коју желимо да додамо на листу може се написати као израз. Израз би био 0 ако би корисник иницијализовао листу нулама.

упореди стринг јава

Разумевање листе је елегантан, директан и добро познат приступ конструисању листе заснован на итератору.

Код

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

Излаз:

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

Ова техника иницијализује листе много брже од Питхон-ових фор и вхиле петљи.

Иницијализујте Питхон листу помоћу * оператора

Други начин за иницијализацију листе у Питхон-у је коришћење * оператора. Креира листу са више вредности. Синтакса коришћења овог оператора је [елемент] * н. Овде је н колико пута желимо да поновимо елемент на листи.

Овај метод помаже када желимо да иницијализујемо листу унапред дефинисаних дужина.

Код

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

Излаз:

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

Овај метод је веома ефикасан и најбржи начин за прављење листе. Упоредићемо време које је потребно методама касније у овом водичу.

како преименовати директоријум у линуксу

Једина мана коришћења овог оператора за иницијализацију Питхон листе је када морамо да креирамо 2Д листу, пошто ће овај метод креирати само плитку листу, тј. креираће један објекат листе, а сви индекси ће се односити на ово објекат који ће бити веома незгодан. Због тога користимо разумевање листе када морамо да креирамо 2Д листе.

Коришћење фор петље и аппенд()

Направићемо празну листу и покренути фор петљу да бисмо додали ставке користећи функцију аппенд() листе.

Код

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

Коришћење вхиле петље за иницијализацију листе

Можемо користити вхиле петљу баш као што смо користили за петљу за иницијализацију листе.

Код

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

Временска сложеност

Погледајмо сада колико ће трајати сваки од описаних приступа. Ми ћемо иницијализовати листу од 100000 елемената 1000 пута. Израчунаћемо просечно време потребно свакој методи да изврши овај задатак.

Код

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

Можемо видети да петље фор и вхиле трају скоро исто време извршења. Међутим, фор петља је мало боља од вхиле петље.

Разумевање листе показује много боље перформансе од фор и вхиле петљи. То је 2-3 пута брже од петљи. Дакле, разумевање листе је много ефикасније од функције аппенд() листе.

Оператор * је показао најбољи учинак од сва четири метода.