Liste som er en integrert del av Python-programmering må læres av alle Python-brukere, og å ha kunnskap om dens nytte og operasjoner er viktig og alltid et pluss.
Mange operasjoner utføres i lister, men i denne artikkelen vil vi diskutere lengden på en liste. Lengden på en liste betyr antall elementer den har. Vi skal se på 8 forskjellige metoder for å finne lengden på en liste i Python .
Eksempel:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Finn lengden på en liste i Python
Nedenfor er metodene vi vil dekke i denne artikkelen:
- Ved hjelp av bare() funksjon
- Bruker naiv metode
- Bruk av length_hint()
- Ved hjelp av sum() metode
- Bruker en listeforståelse
- Ved hjelp av rekursjon
- Ved hjelp av oppregne funksjon
- Ved hjelp av Samlinger Modul
1. Finn lengden på en liste ved å bruke len()-funksjonen
Python bare() funksjon er en innebygd funksjon i Python. Den kan brukes til å finne lengden på et objekt ved å føre objektet innenfor parentesen til len-funksjonen.
Python3
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Produksjon:
The length of list is: 3>
Tidskompleksitet: O(n), hvor n er lengden på listen
Hjelpeplass: O(1)
2. Finn lengden på en liste ved å bruke naiv metode
I denne metoden kjører man bare en løkke og øker telleren til det siste elementet på listen for å vite antallet. Dette er den mest grunnleggende strategien som muligens kan brukes i fravær av andre nåværende teknikker.
Python3
# Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list using loop> # Initializing counter> counter> => 0> for> i> in> test_list:> > # incrementing counter> > counter> => counter> +> 1> # Printing length of list> print> (> 'Length of list using naive method is : '> +> str> (counter))> |
>
>
Produksjon:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Tidskompleksitet: På)
Hjelpeplass: O(1)
boblesorteringspyton
3. Finn lengden på en liste ved å bruke length_hint()-metoden
Denne teknikken er en mindre kjent teknikk for å finne listelengde. Denne spesielle metoden er definert i operatørklassen, og den kan også si nei. av elementene som finnes i listen. Her finner vi lengden på listen ved å bruke len() og length_hint()
Python3
from> operator> import> length_hint> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list using len()> list_len> => len> (test_list)> # Finding length of list using length_hint()> list_len_hint> => length_hint(test_list)> # Printing length of list> print> (> 'Length of list using len() is : '> +> str> (list_len))> print> (> 'Length of list using length_hint() is : '> +> str> (list_len_hint))> |
>
>
Utgang:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Finn lengden på en liste ved å bruke sum()-funksjonen
Bruk iterasjon inne i summen og med hver iterasjon legger du til en og på slutten av iterasjonen får vi den totale lengden på listen.
Python3
java-oppføring
# Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list> # using sum()> list_len> => sum> (> 1> for> i> in> test_list)> # Printing length of list> print> (> 'Length of list using len() is : '> +> str> (list_len))> print> (> 'Length of list using length_hint() is : '> +> str> (list_len))> |
>
>
Produksjon:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Finn lengden på en liste ved å bruke en listeforståelse
Initialiser en liste kalt test_list med noen verdier Initialiser deretter en variabel kalt lengde til 0. Bruk en listeforståelse for å generere en sekvens av ener for hvert element i test_list.
Dette vil lage en liste over de med samme lengde som test_list. Bruk nå sum()-funksjonen for å summere alle i listen generert av listeforståelse . Tilordne summen til lengdevariabelen. Skriv ut lengdevariabelen.
Python3
# Define the list to be used for the demonstration> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Calculate the length of the list using a list comprehension and the sum function> # The list comprehension generates a sequence of ones for each element in the list> # The sum function then sums all the ones to give the length of the list> length> => sum> (> 1> for> _> in> test_list)> # Print the length of the list> print> (> 'Length of list using list comprehension is:'> , length)> |
>
>Produksjon
Length of list using list comprehension is: 5>
Tidskompleksitet: Listeforståelsen lager en ny liste med en lengde lik lengden på test_list. Sum()-funksjonen itererer deretter over denne listen for å beregne summen. Derfor er tidskompleksiteten til denne algoritmen O(N), der N er lengden på test_listen.
Hjelpeplass: Algoritmen oppretter en ny liste over dem med en lengde lik lengden på test_list ved å bruke listeforståelsen. Derfor er hjelperomskompleksiteten også O(N), der N er lengden på test_listen.
6. Finn lengden på en liste ved å bruke rekursjon
Vi kan bruke en rekursiv funksjon som krever en liste lst som input og rekursivt kaller seg selv, og sender inn en del av listen som ekskluderer det første elementet til listen er tom.
Grunnfallet er når listen er tom, i så fall returnerer funksjonen 0. Ellers legger den til 1 til resultatet av å kalle funksjonen på resten av listen.
Python3
# Define a function to count the number of elements in a list using recursion> def> count_elements_recursion(lst):> > # Base case: if the list is empty, return 0> > if> not> lst:> > return> 0> > # Recursive case: add 1 to the count of the remaining elements in the list> > return> 1> +> count_elements_recursion(lst[> 1> :])> # Test the function with a sample list> lst> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ]> print> (> 'The length of the list is:'> , count_elements_recursion(lst))> # Output: The length of the list is: 5> |
referansevariabel i java
>
>Produksjon
The length of the list is: 5>
Tidskompleksitet: O(n) hvor n er lengden på listen. Dette er fordi funksjonen lager n rekursive anrop, som hver tar O(1) tid, og det er også O(1) arbeid utført på hvert nivå utenfor det rekursive anropet.
Plass kompleksitet: O(n) hvor n er lengden på listen. Dette er fordi funksjonen lager n stackrammer på anropsstakken på grunn av de rekursive anropene.
7. Finn lengden på en liste ved å bruke funksjonen enumerate().
Python enumerate() metoden legger til en teller til en iterabel og returnerer den i form av et oppregningsobjekt.
Python3
# python code to find the length> # of list using enumerate function> list1> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> s> => 0> for> i, a> in> enumerate> (list1):> > s> +> => 1> print> (s)> |
>
>Produksjon
5>
8. Finn lengden på en liste ved å bruke samlinger
Alternativt kan du også bruke sum() funksjon sammen med verdier()-metoden til Samlinger Motobjekt for å få lengden på listen.
Python3
from> collections> import> Counter> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Finding length of list using Counter()> list_len> => sum> (Counter(test_list).values())> print> (> 'Length of list using Counter() is:'> , list_len)> # This code is contributed by Edula Vinay Kumar Reddy> |
>
>Produksjon
Length of list using Counter() is: 5>
Tidskompleksitet: O(n), hvor n er lengden på listen. Dette er fordi Counter()-funksjonen har en tidskompleksitet på O(n) når den brukes på en liste med lengde n, og verdier()-metoden og sum()-funksjonen har begge en tidskompleksitet på O(n) når de brukes til en liste med lengde n.
Romkompleksiteten: O(n), som Counter()-funksjonen, lager en ordbok med n nøkkelverdi-par, som hver representerer henholdsvis et element og dets antall i listen. Denne ordboken tar opp O(n) plass.
Ytelsesanalyse: Naiv vs Python len() vs Python length_hint()
Når du velger mellom alternativer, er det alltid nødvendig å ha en gyldig grunn til å velge en fremfor en annen. Denne delen gjør en tidsanalyse av hvor mye tid det tar å utføre alle for å tilby et bedre valg å bruke.
Python3
from> operator> import> length_hint> import> time> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list> # using loop> # Initializing counter> start_time_naive> => time.time()> counter> => 0> for> i> in> test_list:> > # incrementing counter> > counter> => counter> +> 1> end_time_naive> => str> (time.time()> -> start_time_naive)> # Finding length of list> # using len()> start_time_len> => time.time()> list_len> => len> (test_list)> end_time_len> => str> (time.time()> -> start_time_len)> # Finding length of list> # using length_hint()> start_time_hint> => time.time()> list_len_hint> => length_hint(test_list)> end_time_hint> => str> (time.time()> -> start_time_hint)> # Printing Times of each> print> (> 'Time taken using naive method is : '> +> end_time_naive)> print> (> 'Time taken using len() is : '> +> end_time_len)> print> (> 'Time taken using length_hint() is : '> +> end_time_hint)> |
>
>
Produksjon:
The list is : [1, 4, 5, 7, 8] Time taken using naive method is : 2.6226043701171875e-06 Time taken using len() is : 1.1920928955078125e-06 Time taken using length_hint() is : 1.430511474609375e-06>
På bildene nedenfor kan det tydelig sees at det tar tid naiv>> length_hint()> len() , men tiden det tar avhenger sterkt av operativsystemet og flere av dets parametere.
I to påfølgende løp kan du få kontrasterende resultater, faktisk noen ganger tar naiv minst tid av tre. Alle de 6 mulige permutasjonene er mulige.
naiv> len()> length_hint()

naiv> len()=length_hint()

naiv> length_hint()>len()

naiv> length_hint()> len()
Vi har diskutert 8 forskjellige metoder for å finne lengden på en liste i Python. Vi har også gjort en ytelsesanalyse for å sjekke hvilken metode som er best.
Du kan bruke hvilken som helst av metodene ovenfor for å finne lengden på en liste. Å finne listelengde er veldig nyttig når du arbeider med store lister og du vil sjekke antall oppføringer.
ternær operatør java
Sjekk ut flere Python Lists-sider:
- Python List metoder
- Python List Øvelse
- Plasskompleksiteten til listeoperasjoner i Python