Liste, der er en integreret del af Python-programmering, skal læres af alle Python-brugere, og det er vigtigt at have kendskab til dens nytte og funktion, og det er altid et plus.
Mange operationer udføres i lister, men i denne artikel vil vi diskutere længden af en liste. Længden af en liste betyder antallet af elementer, den har. Vi skal se på 8 forskellige metoder til at finde længden af 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.>
Find længden af en liste i Python
Nedenfor er de metoder, vi vil dække i denne artikel:
- Ved brug af kun() fungere
- Bruger naiv metode
- Brug af length_hint()
- Ved brug af sum() metode
- Ved hjælp af en listeforståelse
- Ved brug af rekursion
- Ved brug af opregne fungere
- Ved brug af Samlinger modul
1. Find længden af en liste ved hjælp af len()-funktionen
Python kun() funktion er en indbygget funktion i Python. Det kan bruges til at finde længden af et objekt ved at sende objektet inden for parentesen af len-funktionen.
Python3
# Python len()> li>=> [>10>,>20>,>30>]> n>=> len>(li)> print>(>'The length of list is: '>, n)> |
>
>
Produktion:
The length of list is: 3>
Tidskompleksitet: O(n), hvor n er længden af listen
Hjælpeplads: O(1)
2. Find længden af en liste ved hjælp af naiv metode
I denne metode kører man bare en løkke og øger tælleren til det sidste element på listen for at kende dens antal. Dette er den mest grundlæggende strategi, der muligvis kan anvendes i fravær af andre nuvæ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))> |
>
>
Produktion:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Tidskompleksitet: På)
Hjælpeplads: O(1)
10 potens af 6
3. Find længden af en liste ved hjælp af length_hint()-metoden
Denne teknik er en mindre kendt teknik til at finde listens længde. Denne særlige metode er defineret i operatorklassen, og den kan også sige nej. af elementer på listen. Her finder vi længden af listen ved hjælp af 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))> |
>
>
Output:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Find længden af en liste ved hjælp af sum()-funktionen
Brug iteration inde i summen og med hver iteration tilføjes en og i slutningen af iterationen får vi listens samlede længde.
Python3
en million i tal
# 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))> |
>
>
Produktion:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Find længden af en liste ved hjælp af en listeforståelse
Initialiser en liste kaldet test_liste med nogle værdier Initialiser derefter en variabel kaldet længde til 0. Brug en listeforståelse til at generere en sekvens af ener for hvert element i test_listen.
Dette vil oprette en liste over dem med samme længde som test_listen. Brug nu sum()-funktionen til at summere alle dem på listen genereret af listeforståelse . Tildel summen til længdevariablen. Udskriv længdevariablen.
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)> |
>
>Produktion
Length of list using list comprehension is: 5>
Tidskompleksitet: Listeforståelsen opretter en ny liste med en længde svarende til længden af test_listen. Sum()-funktionen itererer derefter over denne liste for at beregne summen. Derfor er tidskompleksiteten af denne algoritme O(N), hvor N er længden af test_listen.
Hjælpeplads: Algoritmen opretter en ny liste over dem med en længde svarende til længden af test_list ved hjælp af listeforståelsen. Derfor er hjælperummets kompleksitet også O(N), hvor N er længden af test_listen.
6. Find længden af en liste ved hjælp af rekursion
Vi kan bruge en rekursiv funktion der kræver en liste lst som input og rekursivt kalder sig selv, passerer et udsnit af listen, der udelukker det første element, indtil listen er tom.
Grundstilfældet er, når listen er tom, i hvilket tilfælde funktionen returnerer 0. Ellers tilføjer den 1 til resultatet af at kalde funktionen på resten af 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> |
det smukkeste smil
>
>Produktion
The length of the list is: 5>
Tidskompleksitet: O(n) hvor n er længden af listen. Dette skyldes, at funktionen laver n rekursive kald, der hver tager O(1) tid, og der er også O(1) arbejde udført på hvert niveau uden for det rekursive kald.
Rumkompleksitet: O(n) hvor n er længden af listen. Dette skyldes, at funktionen opretter n stak frames på opkaldsstakken på grund af de rekursive opkald.
7. Find længden af en liste ved hjælp af enumerate()-funktionen
Python opregne() metode tilføjer en tæller til en iterabel og returnerer den i form af et optællingsobjekt.
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)> |
>
>Produktion
5>
8. Find længden af en liste ved hjælp af samlinger
Alternativt kan du også bruge sum() funktion sammen med values()-metoden for Samlinger Modobjekt for at få listens længde.
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> |
>
>Produktion
Length of list using Counter() is: 5>
Tidskompleksitet: O(n), hvor n er længden af listen. Dette skyldes, at Counter()-funktionen har en tidskompleksitet på O(n), når den anvendes på en liste med længden n, og values()-metoden og sum()-funktionen begge har en tidskompleksitet på O(n), når de anvendes. til en liste med længde n.
Rumkompleksiteten: O(n), som Counter()-funktionen, opretter en ordbog med n nøgleværdi-par, der hver repræsenterer henholdsvis et element og dets antal på listen. Denne ordbog optager O(n) plads.
Ydeevneanalyse: Naiv vs Python len() vs Python length_hint()
Når du vælger mellem alternativer, er det altid nødvendigt at have en gyldig grund til at vælge hinanden frem for hinanden. Dette afsnit laver en tidsanalyse af, hvor meget tid det tager at udføre dem alle for at tilbyde et bedre valg at bruge.
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)> |
>
>
Produktion:
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å nedenstående billeder kan det tydeligt ses, at det tager tid naiv>> length_hint()> len() , men den tid, det tager, afhænger meget af OS og flere af dets parametre.
I to på hinanden følgende løb kan du få kontrasterende resultater, faktisk tager naiv nogle gange mindst tid ud af tre. Alle de 6 mulige permutationer er mulige.

naiv> len()> length_hint()

naiv> len()=længde_hint()

naiv> length_hint()>len()

naiv> length_hint()> len()
Vi har diskuteret 8 forskellige metoder til at finde længden af en liste i Python. Vi har også lavet en præstationsanalyse for at tjekke, hvilken metode der er den bedste.
Du kan bruge enhver af ovenstående metoder til at finde længden af en liste. At finde listens længde er meget nyttigt, når du har at gøre med enorme lister, og du vil kontrollere antallet af poster.
midterknap css
Tjek flere Python Lists-sider:
- Python List metoder
- Python List Øvelse
- Pladskompleksitet af listeoperationer i Python