logo

Hvordan initialisere en liste i Python?

Ethvert Python-objekt kan inneholde en gruppe med ordnede verdier i en Python-liste. Fordi listen er en foranderlig datastruktur i Python, kan vi legge til, fjerne eller endre eksisterende verdier i denne beholderen. I motsetning til sett, tillater listen mange forekomster av samme verdi og behandler hvert som et annet element. I denne opplæringen lærer vi hvordan du initialiserer et listeobjekt i Python.

Initialiser listene ved å bruke firkantede parenteser

Å bruke en firkantet parentes er en måte å initialisere en liste uten verdier hvis vi ønsker å konstruere en tom liste i Python uten verdier. For å initialisere en liste trenger vi bare å spesifisere et par firkantede parenteser med eller uten elementverdier.

mens loop java

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

Produksjon:

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

Bruke funksjonen innebygd liste() for å initialisere en liste

Pythons list()-funksjon konstruerer listen, et gjentakbart objekt. Derfor er dette en annen måte å lage en tom Python-liste uten data på dette kodespråket.

Et iteratorobjekt, en sekvens som muliggjør iterasjon eller en beholder kan alle være iterable. En ny tom liste blir konstruert hvis ingen input er gitt.

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

Produksjon:

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

Den firkantede parentes-metoden er foretrukket fremfor den innebygde list()-funksjonen fordi den er klarere og mer illustrativ.

Bruke listeforståelser for å initialisere en liste

Vi kan bruke tilnærmingen til listeforståelse for å angi listens standardparametere. Den består av et uttrykk omsluttet av firkantede parenteser, en for-setning og en valgfri if-setning som kanskje følger etter. Ethvert element vi ønsker å legge til listen kan skrives som et uttrykk. Uttrykket vil være 0 hvis brukeren initialiserte listen med nuller.

Listeforståelse er en elegant, grei og velkjent tilnærming til å konstruere en liste basert 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_) 

Produksjon:

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

Denne teknikken initialiserer lister mye raskere enn Pythons for og while-løkker.

Initialiser en Python-liste ved å bruke *-operatøren

En annen måte å initialisere en liste i Python er å bruke *-operatoren. Den lager en liste med flere verdier. Syntaksen for å bruke denne operatoren er [element] * n. Her er n antall ganger vi ønsker å gjenta elementet i listen.

xd xd betydning

Denne metoden hjelper når vi ønsker å initialisere en liste over forhåndsdefinerte lengder.

Kode

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

Produksjon:

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

Denne metoden er veldig effektiv og den raskeste måten å lage en liste på. Vi vil sammenligne tiden det tar med metodene senere i denne opplæringen.

Den eneste ulempen med å bruke denne operatoren til å initialisere en Python-liste er når vi må lage en 2D-liste, da denne metoden bare vil lage en grunn liste, dvs. den vil lage et enkelt listeobjekt, og alle indeksene vil referere til dette objekt som vil være svært upraktisk. Det er derfor vi bruker listeforståelse når vi skal lage 2D-lister.

Bruke en for Loop og append()

Vi vil lage en tom liste og kjøre en for-løkke for å legge til elementer ved å bruke append()-funksjonen til listen.

Kode

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

Bruke en while-løkke for å initialisere en liste

Vi kan bruke en while-løkke akkurat som vi brukte for loop for å 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

La oss nå se hvor lang tid hver av de beskrevne tilnærmingene vil ta. Vi vil initialisere en liste med 100 000 elementer 1000 ganger. Vi vil beregne den gjennomsnittlige tiden hver metode tar for å utføre denne oppgaven.

javascript utskrift

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 mens løkker tar nesten samme utførelsestid. For loop er imidlertid litt bedre enn while-løkken.

Listeforståelse viser mye bedre ytelse enn for og mens-løkkene. Det er 2-3 ganger raskere enn løkkene. Dermed er listeforståelse mye mer effektiv enn append()-funksjonen til listene.

Operatøren * har vist den beste ytelsen av alle de fire metodene.