logo

Kako najti dolžino seznama v Pythonu

Seznam, ki je sestavni del programiranja Python, se ga morajo naučiti vsi uporabniki Pythona, poznavanje njegove uporabnosti in delovanja pa je nujno in vedno plus.

Številne operacije se izvajajo na seznamih, vendar bomo v tem članku razpravljali o dolžini seznama. Dolžina seznama pomeni število elementov, ki jih ima. Ogledali si bomo 8 različnih metod za iskanje dolžine seznama Python .



primer:

  Input:   lst = [10,20,30,40]   Output:   4   Explanation:   The output is 4 because the length of the list is 4.>

Poiščite dolžino seznama v Pythonu

Spodaj so metode, ki jih bomo obravnavali v tem članku:

1. Poiščite dolžino seznama s funkcijo len().

Python samo() funkcija je vgrajena funkcija v Pythonu. Uporablja se lahko za iskanje dolžine predmeta tako, da posreduje predmet v oklepajih funkcije len.



Python3






# Python len()> li>=> [>10>,>20>,>30>]> n>=> len>(li)> print>(>'The length of list is: '>, n)>

>

>

Izhod:

The length of list is: 3>

Časovna zapletenost: O(n), kjer je n dolžina seznama
Pomožni prostor: O(1)

2. Poiščite dolžino seznama z uporabo naivne metode

Pri tej metodi preprosto zaženemo zanko in povečamo števec do zadnjega elementa seznama, da izvemo njegovo število. To je najosnovnejša strategija, ki jo je mogoče uporabiti brez drugih obstoječih tehnik.

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

>

>

Izhod:

The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>

Časovna zapletenost: O(n)
Pomožni prostor: O(1)

execlp

3. Poiščite dolžino seznama z uporabo metode length_hint().

Ta tehnika je manj znana tehnika za iskanje dolžine seznama. Ta posebna metoda je definirana v operatorskem razredu in lahko pove tudi št. elementov, ki so prisotni na seznamu. Tukaj najdemo dolžino seznama z uporabo len() in 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))>

>

>

Izhod:

The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>

4. Poiščite dolžino seznama s funkcijo sum().

Uporabi iteracijo znotraj vsote in z vsako iteracijo doda eno in na koncu iteracije dobimo skupno dolžino seznama.

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

>

vrsta vstavljanja java
>

Izhod:

The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>

5. Poiščite dolžino seznama z razumevanjem seznama

Inicializirajte imenovan seznam test_list z nekaj vrednostmi, nato inicializirajte spremenljivko, imenovano length, na 0. Uporabite razumevanje seznama, da ustvarite zaporedje enic za vsak element v test_list.

To bo ustvarilo seznam tistih z enako dolžino kot test_list. Zdaj uporabite funkcijo sum(), da seštejete vse na seznamu, ki ga ustvari razumevanje seznama . Dodeli vsoto spremenljivki dolžine. Natisnite spremenljivko dolžine.

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

>

>

Izhod

Length of list using list comprehension is: 5>

Časovna zapletenost: Razumevanje seznama ustvari nov seznam z dolžino, ki je enaka dolžini test_list. Funkcija sum() nato ponovi ta seznam, da izračuna vsoto. Zato je časovna kompleksnost tega algoritma O(N), kjer je N dolžina seznama testov.
Pomožni prostor: Algoritem ustvari nov seznam enih z dolžino, ki je enaka dolžini test_list z uporabo razumevanja seznama. Zato je kompleksnost pomožnega prostora prav tako O(N), kjer je N dolžina test_list.

6. Poiščite dolžino seznama z uporabo rekurzije

Uporabimo lahko a rekurzivna funkcija ki zahteva seznam lst kot vhod in se rekurzivno pokliče, pri čemer posreduje rezino seznama, ki izključuje prvi element, dokler seznam ni prazen.

Osnovni primer je, ko je seznam prazen, in v tem primeru funkcija vrne 0. V nasprotnem primeru doda 1 k rezultatu klica funkcije na preostalem delu seznama.

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>

>

>

Izhod

The length of the list is: 5>

Časovna zahtevnost: O(n), kjer je n dolžina seznama. To je zato, ker funkcija izvede n rekurzivnih klicev, pri čemer vsak vzame O(1) časa, poleg tega pa je na vsaki ravni zunaj rekurzivnega klica opravljeno O(1) dela.
Kompleksnost prostora: O(n), kjer je n dolžina seznama. To je zato, ker funkcija ustvari n okvirjev sklada na skladu klicev zaradi rekurzivnih klicev.

7. Poiščite dolžino seznama s funkcijo enumerate().

Python naštej() metoda doda števec iterable in ga vrne v obliki enumeracijskega objekta.

Python3

program za dedovanje v pythonu




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

>

>

Izhod

5>

8. Poiščite dolžino seznama z uporabo zbirk

Lahko pa uporabite tudi vsota() skupaj z metodo values() funkcije Zbirke Objekt števca za pridobitev dolžine seznama.

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>

>

>

Izhod

Length of list using Counter() is: 5>

Časovna zahtevnost: O(n), kjer je n dolžina seznama. To je zato, ker ima funkcija Counter() časovno zapletenost O(n), ko je uporabljena na seznamu dolžine n, metoda values() in funkcija sum() pa imata časovno zapletenost O(n), ko se uporabita. na seznam dolžine n.
Kompleksnost prostora: O(n) kot funkcija Counter() ustvari slovar z n pari ključ-vrednost, od katerih vsak predstavlja element oziroma njegovo število na seznamu. Ta slovar zavzame O(n) prostora.

Analiza zmogljivosti: Naive proti Python len() proti Python length_hint()

Pri izbiri med alternativami je vedno treba imeti tehten razlog, zakaj izbrati eno namesto druge. Ta razdelek naredi časovno analizo, koliko časa je potrebno za izvedbo vseh, da ponudi boljšo izbiro za uporabo.

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

>

>

Izhod:

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>

Na spodnjih slikah je jasno razvidno, da je porabljen čas naivno>> length_hint()> len() , vendar je porabljen čas močno odvisen od OS in več njegovih parametrov.

V dveh zaporednih vožnjah lahko dobite kontrastne rezultate, pravzaprav si včasih naiven vzame najmanj časa od treh. Možnih je vseh možnih 6 permutacij.

naivno> len()> length_hint()

naivno> len()=length_hint()

naivno> length_hint()>len()

naivno> length_hint()> len()

Razpravljali smo o 8 različnih metodah za iskanje dolžine seznama v Pythonu. Izvedli smo tudi analizo uspešnosti, da preverimo, katera metoda je najboljša.

Za iskanje dolžine seznama lahko uporabite katero koli od zgornjih metod. Iskanje dolžine seznama je zelo koristno, ko imate opravka z ogromnimi seznami in želite preveriti število vnosov.

podniz niza java

Oglejte si več strani s seznami Python: