Elk Python-object kan worden opgenomen in een groep geordende waarden in een Python-lijst. Omdat de lijst een veranderbare gegevensstructuur in Python is, kunnen we de bestaande waarden in deze container toevoegen, verwijderen of wijzigen. In tegenstelling tot sets staat de lijst meerdere exemplaren van dezelfde waarde toe en worden ze allemaal als een ander item behandeld. In deze zelfstudie leren we hoe u een lijstobject in Python kunt initialiseren.
Initialiseer de lijsten met behulp van de vierkante haakjes
Het gebruik van vierkante haken is een manier om een lijst zonder waarden te initialiseren als we in Python een lege lijst zonder waarden willen samenstellen. Om een lijst te initialiseren, hoeven we alleen maar een paar vierkante haken met of zonder itemwaarden op te geven.
Code
# 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_)
Uitgang:
An empty list: [] A non-Empty list: [1, 3, 5, 7]
De ingebouwde functie list() gebruiken om een lijst te initialiseren
De functie list() van Python construeert de lijst, een itereerbaar object. Daarom is dit een andere manier om een lege Python-lijst te maken zonder gegevens in deze codeertaal.
bubbel soort
Een iteratorobject, een reeks die iteratie mogelijk maakt, of een container kunnen allemaal iterabelen zijn. Als er geen invoer wordt gegeven, wordt er een nieuwe lege lijst samengesteld.
Code
Cassidy Hutchinson-onderwijs
# 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_)
Uitgang:
An empty list: [] A non-empty list: [1, 2, 3]
De methode met vierkante haakjes heeft de voorkeur boven de ingebouwde functie list() omdat deze duidelijker en illustratiever is.
Lijstbegrippen gebruiken om een lijst te initialiseren
We kunnen de lijstbegripbenadering gebruiken om de standaardparameters van de lijst in te stellen. Het bestaat uit een uitdrukking tussen vierkante haakjes, een for-instructie en een optionele if-instructie die wel of niet kan volgen. Elk item dat we aan de lijst willen toevoegen, kan als een expressie worden geschreven. De expressie zou 0 zijn als de gebruiker de lijst met nullen initialiseerde.
Het begrijpen van lijsten is een elegante, eenvoudige en bekende benadering voor het construeren van een lijst op basis van een iterator.
Code
# 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_)
Uitgang:
The list was created using list comprehension: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Deze techniek initialiseert lijsten veel sneller dan de for- en while-lussen van Python.
Initialiseer een Python-lijst met behulp van de operator *
Een andere manier om een lijst in Python te initialiseren is het gebruik van de operator *. Er wordt een lijst met meerdere waarden gemaakt. De syntaxis voor het gebruik van deze operator is [element] * n. Hier is n het aantal keren dat we het element in de lijst willen herhalen.
tostring-methode java
Deze methode helpt wanneer we een lijst met vooraf gedefinieerde lengtes willen initialiseren.
Code
# Python program to show how to use the * operator to initialize a list list_ = [5]*10 print (list)
Uitgang:
[5, 5, 5, 5, 5, 5, 5, 5, 5]
Deze methode is zeer efficiënt en de snelste manier om een lijst te maken. We zullen de tijd die de methoden nodig hebben later in deze zelfstudie vergelijken.
java lang naar string
Het enige nadeel van het gebruik van deze operator om een Python-lijst te initialiseren is wanneer we een 2D-lijst moeten maken, omdat deze methode alleen een ondiepe lijst zal maken, dat wil zeggen dat er één enkel lijstobject wordt gemaakt, en alle indices zullen hiernaar verwijzen. voorwerp dat erg lastig zal zijn. Dit is de reden waarom we lijstbegrip gebruiken wanneer we 2D-lijsten moeten maken.
Een for Loop gebruiken en append()
We zullen een lege lijst maken en een for-lus uitvoeren om items toe te voegen met behulp van de append()-functie van de lijst.
Code
# Python program to show how to use a for loop to initialize a list arr = [] for i in range(1000): arr.append(0)
Een While-lus gebruiken om een lijst te initialiseren
We kunnen een while-lus gebruiken, net zoals we for-lus gebruikten om een lijst te initialiseren.
Code
# 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):>
Tijdcomplexiteit
Laten we nu eens kijken hoe lang elk van de beschreven benaderingen zal duren. We zullen een lijst van 100.000 elementen 1000 keer initialiseren. We berekenen de gemiddelde tijd die elke methode nodig heeft om deze taak uit te voeren.
tekenreeks subtekenreeks java
Code
# 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:>
We kunnen zien dat for- en while-lussen bijna dezelfde uitvoeringstijd in beslag nemen. De for-lus is echter iets beter dan de while-lus.
Lijstbegrip levert veel betere prestaties op dan de for- en while-loops. Het is 2-3 keer sneller dan de lussen. Het begrijpen van lijsten is dus veel efficiënter dan de functie append() van de lijsten.
De *-operator heeft van alle vier de methoden de beste prestatie laten zien.
100000:>10):>