Lista fiind parte integrantă a programării Python trebuie învățată de toți utilizatorii Python și cunoașterea utilității și a operațiunilor sale este esențială și întotdeauna un plus.
Multe operațiuni sunt efectuate în liste, dar în acest articol vom discuta despre lungimea unei liste. Lungimea unei liste înseamnă numărul de elemente pe care le are. Vom analiza 8 metode diferite pentru a găsi lungimea unei liste Piton .
Exemplu:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Găsiți lungimea unei liste în Python
Mai jos sunt metodele pe care le vom acoperi în acest articol:
- Folosind numai() funcţie
- Folosind metoda naivă
- Folosind length_hint()
- Folosind sumă() metodă
- Folosind un înțelegerea listei
- Folosind recursiunea
- Folosind enumera funcţie
- Folosind Colecții Modul
1. Găsiți lungimea unei liste folosind funcția len().
Piton numai() funcția este o funcție încorporată în Python. Poate fi folosit pentru a găsi lungimea unui obiect prin trecerea obiectului între parantezele funcției len.
Python3
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Ieșire:
The length of list is: 3>
Complexitatea timpului: O(n), unde n este lungimea listei
Spațiu auxiliar: O(1)
2. Găsiți lungimea unei liste utilizând metoda naivă
În această metodă, pur și simplu rulează o buclă și crește contorul până la ultimul element al listei pentru a-i cunoaște numărul. Aceasta este cea mai de bază strategie care poate fi folosită în absența altor tehnici prezente.
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))> |
>
>
Ieșire:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Complexitatea timpului: Pe)
Spațiu auxiliar: O(1)
redenumiți în directorul linux
3. Găsiți lungimea unei liste folosind metoda length_hint().
Această tehnică este o tehnică mai puțin cunoscută pentru găsirea lungimii listei. Această metodă particulară este definită în clasa de operator și poate spune, de asemenea, nu. a elementelor prezente în listă. Aici, găsim lungimea listei folosind len() și 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))> |
>
>
Ieșire:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Găsiți lungimea unei liste folosind funcția sum().
Utilizați iterația în interiorul sumei și cu fiecare iterație se adaugă una și la sfârșitul iterației, obținem lungimea totală a listei.
Python3
funcția python chr
# 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))> |
>
>
Ieșire:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Găsiți lungimea unei liste utilizând o listă de înțelegere
Inițializați o listă numită lista_test cu unele valori, apoi Inițializați o variabilă numită lungime la 0. Folosiți o listă de înțelegere pentru a genera o secvență de unități pentru fiecare element din lista_test.
Aceasta va crea o listă cu aceeași lungime ca lista_test. Acum utilizați funcția sum() pentru a însuma toate cele din lista generată de înțelegerea listei . Atribuiți suma variabilei lungime. Tipăriți variabila lungime.
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)> |
>
>Ieșire
Length of list using list comprehension is: 5>
Complexitatea timpului: Înțelegerea listei creează o nouă listă cu o lungime egală cu lungimea listei_test. Funcția sum() repetă apoi peste această listă pentru a calcula suma. Prin urmare, complexitatea de timp a acestui algoritm este O(N), unde N este lungimea listei_test.
Spațiu auxiliar: Algoritmul creează o nouă listă cu o lungime egală cu lungimea test_list folosind lista de înțelegere. Prin urmare, complexitatea spațiului auxiliar este de asemenea O(N), unde N este lungimea listei_test.
6. Găsiți lungimea unei liste utilizând recursiunea
Putem folosi a funcţie recurcivă care necesită o listă lst ca intrare și se apelează recursiv, trecând o porțiune din listă care exclude primul element până când lista este goală.
Cazul de bază este atunci când lista este goală, caz în care funcția returnează 0. În caz contrar, adaugă 1 la rezultatul apelării funcției din restul listei.
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> |
>
numpy înseamnă
>Ieșire
The length of the list is: 5>
Complexitatea timpului: O(n) unde n este lungimea listei. Acest lucru se datorează faptului că funcția efectuează n apeluri recursive, fiecare luând timp O(1) și există, de asemenea, munca O(1) efectuată la fiecare nivel în afara apelului recursiv.
Complexitatea spațiului: O(n) unde n este lungimea listei. Acest lucru se datorează faptului că funcția creează n cadre de stivă pe stiva de apeluri din cauza apelurilor recursive.
7. Găsiți lungimea unei liste folosind funcția enumerate().
Piton enumera() metoda adaugă un contor la un iterabil și îl returnează sub forma unui obiect enumerator.
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)> |
>
>Ieșire
5>
8. Găsiți lungimea unei liste folosind colecții
Alternativ, puteți utiliza și sumă() funcția împreună cu metoda values() a Colecții Contor obiect pentru a obține lungimea listei.
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> |
>
>Ieșire
Length of list using Counter() is: 5>
Complexitatea timpului: O(n), unde n este lungimea listei. Acest lucru se datorează faptului că funcția Counter() are o complexitate de timp de O(n) atunci când este aplicată unei liste de lungime n, iar metoda values() și funcția sum() au ambele o complexitate de timp de O(n) când sunt aplicate. la o listă de lungime n.
Complexitatea spațiului: O(n), ca funcție Counter(), creează un dicționar cu n perechi cheie-valoare, fiecare reprezentând un element și, respectiv, numărul acestuia în listă. Acest dicționar ocupă spațiu O(n).
Analiza performanței: Naive vs Python len() vs Python length_hint()
Atunci când alegeți dintre alternative, este întotdeauna necesar să aveți un motiv valid pentru care să alegeți una în locul altuia. Această secțiune face o analiză de timp a cât timp este nevoie pentru a le executa pe toate pentru a oferi o alegere mai bună de utilizat.
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)> |
>
>
Ieșire:
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>
În imaginile de mai jos, se poate vedea clar că timpul luat este naiv>> length_hint()> len() , dar timpul necesar depinde foarte mult de sistemul de operare și de mai mulți parametri ai acestuia.
În două runde consecutive, s-ar putea să obții rezultate contrastante, de fapt, uneori, naivul ia cel mai puțin timp din trei. Toate cele 6 permutări posibile sunt posibile.
naiv> len()> length_hint()

naiv> len()=length_hint()

naiv> length_hint()>len()

naiv> length_hint()> len()
Am discutat despre 8 metode diferite pentru a găsi lungimea unei liste în Python. Am făcut și o analiză de performanță pentru a verifica care metodă este cea mai bună.
Puteți utiliza oricare dintre metodele de mai sus pentru a găsi lungimea unei liste. Găsirea lungimii listei este foarte utilă atunci când aveți de-a face cu liste uriașe și doriți să verificați numărul de intrări.
java obține data curentă
Consultați mai multe pagini cu liste Python:
- Metode Python List
- Exercițiu Python List
- Complexitatea spațială a operațiunilor de listă în Python