logo

Sådan finder du længden af ​​en liste i Python

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:

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: