logo

Hvordan initialiseres en liste i Python?

Ethvert Python-objekt kan være indeholdt i en gruppe af ordnede værdier i en Python-liste. Fordi listen er en foranderlig datastruktur i Python, kan vi tilføje, fjerne eller ændre de eksisterende værdier i denne beholder. I modsætning til sæt tillader listen adskillige forekomster af samme værdi og behandler hver enkelt som et andet element. I denne tutorial lærer vi, hvordan man initialiserer et listeobjekt i Python.

Initialiser listerne ved hjælp af firkantede parenteser

Brug af en firkantet parentes er en måde at initialisere en liste uden værdier på, hvis vi ønsker at konstruere en tom liste i Python uden værdier. For at initialisere en liste behøver vi kun at angive et par firkantede parenteser med eller uden elementværdier.

int til streng

Kode

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

Brug af funktionen Indbygget liste() til at initialisere en liste

Pythons list()-funktion konstruerer listen, et gentageligt objekt. Derfor er dette en anden måde at oprette en tom Python-liste uden nogen data i dette kodningssprog.

Et iteratorobjekt, en sekvens, der muliggør iteration, eller en container kan alle være iterable. En ny tom liste opbygges, hvis der ikke er givet input.

Kode

 # 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 firkantet parentes foretrækkes frem for den indbyggede list()-funktion, fordi den er klarere og mere illustrativ.

Brug af listeforståelser til at initialisere en liste

Vi kan bruge listeforståelsestilgangen til at indstille listens standardparametre. Det består af et udtryk omsluttet af firkantede parenteser, en for-sætning og en valgfri if-sætning, der kan eller ikke kan følge. Ethvert punkt, vi ønsker at tilføje til listen, kan skrives som et udtryk. Udtrykket ville være 0, hvis brugeren initialiserede listen med nuller.

Listeforståelse er en elegant, ligetil og velkendt tilgang til at konstruere en liste baseret på en iterator.

Kode

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

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

Denne teknik initialiserer lister meget hurtigere end Pythons for og while-løkker.

Initialiser en Python-liste ved hjælp af *-operatoren

En anden måde at initialisere en liste i Python på er at bruge *-operatoren. Det opretter en liste med flere værdier. Syntaksen for at bruge denne operator er [element] * n. Her er n antallet af gange, vi ønsker at gentage elementet i listen.

xd xd betydning

Denne metode hjælper, når vi ønsker at initialisere en liste over foruddefinerede længder.

Kode

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

Denne metode er meget effektiv og den hurtigste måde at oprette en liste på. Vi vil sammenligne den tid, som metoderne tager senere i denne tutorial.

Den eneste ulempe ved at bruge denne operator til at initialisere en Python-liste er, når vi skal oprette en 2D-liste, da denne metode kun vil skabe en lavvandet liste, dvs. den vil oprette et enkelt listeobjekt, og alle indekserne vil referere til dette genstand, som vil være meget ubelejligt. Det er derfor, vi bruger listeforståelse, når vi skal lave 2D-lister.

Brug af en for Loop og append()

Vi opretter en tom liste og kører en for-løkke for at tilføje elementer ved hjælp af listens append()-funktion.

Kode

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

Brug af en while-løkke til at initialisere en liste

Vi kan bruge en while-løkke ligesom vi brugte til loop til at initialisere en liste.

Kode

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

Tidskompleksitet

Lad os nu se, hvor lang tid hver af de beskrevne tilgange vil tage. Vi vil initialisere en liste med 100.000 elementer 1000 gange. Vi vil beregne den gennemsnitlige tid, hver metode tager at udføre denne opgave.

mysql venstre join

Kode

 # 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, at for og while-løkker tager næsten samme udførelsestid. For loop er dog lidt bedre end while-løkken.

Listeforståelse viser meget bedre ydeevne end for og while-løkkerne. Det er 2-3 gange hurtigere end løkkerne. Listeforståelse er således meget mere effektiv end listernes append() funktion.

*-operatøren har vist den bedste ydeevne af alle fire metoder.