logo

Hur initierar man en lista i Python?

Alla Python-objekt kan ingå i en grupp av ordnade värden i en Python-lista. Eftersom listan är en föränderlig datastruktur i Python kan vi lägga till, ta bort eller ändra befintliga värden i den här behållaren. Till skillnad från uppsättningar tillåter listan många instanser av samma värde och behandlar var och en som ett annat objekt. I den här handledningen kommer vi att lära oss hur man initierar ett listobjekt i Python.

Initiera listorna med hakparenteser

Att använda en hakparentes är ett sätt att initiera en lista utan värden om vi vill konstruera en tom lista i Python utan värden. För att initiera en lista behöver vi bara ange ett par hakparenteser med eller utan objektvärden.

Koda

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

Produktion:

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

Använda funktionen Built-in list() för att initiera en lista

Pythons list()-funktion konstruerar listan, ett itererbart objekt. Därför är detta ett annat sätt att skapa en tom Python-lista utan några data i detta kodningsspråk.

lista i java

Ett iteratorobjekt, en sekvens som möjliggör iteration eller en behållare kan alla vara itererbara. En ny tom lista skapas om ingen inmatning ges.

Koda

sträng konvertera till int i java
 # 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_) 

Produktion:

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

Metoden med hakparenteser gynnas framför den inbyggda list()-funktionen eftersom den är tydligare och mer illustrativ.

Använda listförståelser för att initiera en lista

Vi kan använda listförståelsemetoden för att ställa in listans standardparametrar. Den består av ett uttryck omgivet av hakparenteser, en for-sats och en valfri if-sats som kan eller inte kan följa. Alla objekt vi vill lägga till i listan kan skrivas som ett uttryck. Uttrycket skulle vara 0 om användaren initierade listan med nollor.

Listförståelse är ett elegant, okomplicerat och välkänt tillvägagångssätt för att konstruera en lista som bygger på en iterator.

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

Produktion:

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

Denna teknik initierar listor mycket snabbare än Pythons for- och while-loopar.

Initiera en Python-lista med * Operator

Ett annat sätt att initiera en lista i Python är att använda operatorn *. Det skapar en lista med flera värden. Syntaxen för att använda denna operator är [element] * n. Här är n antalet gånger vi vill upprepa elementet i listan.

java sträng jämförelse

Denna metod hjälper när vi vill initiera en lista med fördefinierade längder.

Koda

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

Produktion:

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

Denna metod är mycket effektiv och det snabbaste sättet att skapa en lista. Vi kommer att jämföra den tid som metoderna tar längre fram i denna handledning.

annat om bash

Den enda nackdelen med att använda den här operatorn för att initiera en Python-lista är när vi måste skapa en 2D-lista, eftersom den här metoden bara kommer att skapa en ytlig lista, dvs den kommer att skapa ett enda listobjekt, och alla index kommer att referera till detta föremål som kommer att vara mycket obekvämt. Det är därför vi använder listförståelse när vi ska skapa 2D-listor.

Använda en for Loop och append()

Vi kommer att skapa en tom lista och köra en for-loop för att lägga till objekt med hjälp av append()-funktionen i listan.

Koda

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

Använda en while-loop för att initiera en lista

Vi kan använda en while-loop precis som vi använde för loop för att initiera en lista.

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

Tidskomplexitet

Låt oss nu se hur lång tid var och en av de beskrivna tillvägagångssätten kommer att ta. Vi kommer att initiera en lista med 100 000 element 1 000 gånger. Vi kommer att beräkna den genomsnittliga tid varje metod tar för att utföra denna uppgift.

hur man avslöjar dolda appar

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

Vi kan se att för och medan loopar tar nästan samma exekveringstid. För loop är dock lite bättre än while-loopen.

Listförståelse visar mycket bättre prestanda än for- och while-looparna. Det är 2-3 gånger snabbare än slingorna. Således är listförståelse mycket effektivare än funktionen append() i listorna.

Operatören * har visat den bästa prestandan av alla fyra metoderna.