logo

Com trobar la longitud d'una llista a Python

La llista és una part integral de la programació de Python ha de ser apresa per tots els usuaris de Python i tenir coneixement de la seva utilitat i operacions és essencial i sempre un avantatge.

Moltes operacions es realitzen en llistes, però en aquest article parlarem de la longitud d'una llista. La longitud d'una llista significa el nombre d'elements que té. Veurem 8 mètodes diferents per trobar la longitud d'una llista Python .



Exemple:

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

Trobeu la longitud d'una llista en Python

A continuació es mostren els mètodes que tractarem en aquest article:

1. Trobeu la longitud d'una llista utilitzant la funció len().

Python només () La funció és una funció integrada a Python. Es pot utilitzar per trobar la longitud d'un objecte passant l'objecte entre els parèntesis de la funció len.



Python 3






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

>

>

Sortida:

The length of list is: 3>

Complexitat temporal: O(n), on n és la longitud de la llista
Espai auxiliar: O(1)

2. Trobeu la longitud d'una llista utilitzant el mètode ingenu

En aquest mètode, només s'executa un bucle i augmenta el comptador fins a l'últim element de la llista per saber-ne el recompte. Aquesta és l'estratègia més bàsica que possiblement es pot emprar en absència d'altres tècniques actuals.

Python 3




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

>

>

Sortida:

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

Complexitat temporal: O(n)
Espai auxiliar: O(1)

creació de taules d'oracle

3. Trobeu la longitud d'una llista utilitzant el mètode length_hint().

Aquesta tècnica és una tècnica menys coneguda per trobar la longitud de la llista. Aquest mètode en particular es defineix a la classe d'operador i també pot dir el no. dels elements presents a la llista. Aquí, estem trobant la longitud de la llista utilitzant len() i length_hint()

Python 3




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

>

llista de programes python
>

Sortida:

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

4. Trobeu la longitud d'una llista utilitzant la funció sum().

Utilitzeu la iteració dins de la suma i amb cada iteració en afegeix una i al final de la iteració, obtenim la longitud total de la llista.

Python 3




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

>

>

Sortida:

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

5. Trobeu la longitud d'una llista mitjançant una comprensió de llista

Inicialitzar una llista anomenada llista_test amb alguns valors, a continuació, inicialitzeu una variable anomenada longitud a 0. Utilitzeu una comprensió de llista per generar una seqüència d'uns per a cada element de la llista_test.

Això crearà una llista d'uns amb la mateixa longitud que el test_list. Ara utilitzeu la funció sum() per sumar tots els de la llista generada per comprensió de llista . Assigna la suma a la variable de longitud. Imprimeix la variable de longitud.

Python 3




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

>

>

Sortida

Length of list using list comprehension is: 5>

Complexitat temporal: La comprensió de la llista crea una nova llista amb una longitud igual a la longitud de la llista_test. A continuació, la funció sum() itera sobre aquesta llista per calcular la suma. Per tant, la complexitat temporal d'aquest algorisme és O(N), on N és la longitud de la llista_test.
Espai auxiliar: L'algorisme crea una nova llista d'uns amb una longitud igual a la longitud de la llista de prova utilitzant la comprensió de la llista. Per tant, la complexitat de l'espai auxiliar també és O(N), on N és la longitud de la llista_test.

6. Trobeu la longitud d'una llista mitjançant la recursió

Podem utilitzar a funció recursiva que pren una llista lst com a entrada i s'anomena recursivament a si mateix, passant una part de la llista que exclou el primer element fins que la llista estigui buida.

El cas base és quan la llista està buida, en aquest cas la funció retorna 0. En cas contrari, afegeix 1 al resultat de cridar la funció a la resta de la llista.

Python 3


int a cadena c++



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

>

>

Sortida

The length of the list is: 5>

Complexitat temporal: O(n) on n és la longitud de la llista. Això es deu al fet que la funció fa n trucades recursives, cadascuna pren un temps O(1), i també hi ha treball O(1) realitzat a cada nivell fora de la crida recursiva.
Complexitat espacial: O(n) on n és la longitud de la llista. Això es deu al fet que la funció crea n fotogrames de pila a la pila de trucades a causa de les trucades recursives.

7. Trobeu la longitud d'una llista utilitzant la funció enumerate().

Python enumerar() El mètode afegeix un comptador a un iterable i el retorna en forma d'objecte enumerador.

Python 3




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

>

>

Sortida

5>

8. Trobeu la longitud d'una llista mitjançant col·leccions

Alternativament, també podeu utilitzar el suma() funció juntament amb el mètode values() del Col·leccions Objecte comptador per obtenir la longitud de la llista.

Python 3




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>

>

>

Sortida

Length of list using Counter() is: 5>

Complexitat temporal: O(n), on n és la longitud de la llista. Això es deu al fet que la funció Counter() té una complexitat temporal de O(n) quan s'aplica a una llista de longitud n, i el mètode values() i la funció sum() tenen una complexitat temporal de O(n) quan s'apliquen. a una llista de longitud n.
La complexitat espacial: O(n), com a funció Counter(), crea un diccionari amb n parells clau-valor, cadascun representant un element i el seu recompte a la llista, respectivament. Aquest diccionari ocupa espai O(n).

Anàlisi de rendiment: Naive vs Python len() vs Python length_hint()

A l'hora d'escollir entre alternatives sempre és necessari tenir un motiu vàlid per triar-ne una sobre una altra. Aquesta secció fa una anàlisi de temps del temps que es necessita per executar-los tots per oferir una millor opció d'utilitzar.

Python 3




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

>

>

Sortida:

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>

A les imatges següents, es pot veure clarament que el temps que es necessita ingenu>> pista_longitud()> len() , però el temps necessari depèn molt del sistema operatiu i de diversos dels seus paràmetres.

En dues tirades consecutives, podeu obtenir resultats contrastats, de fet, de vegades, l'ingenu és el que menys temps de tres. Totes les 6 permutacions possibles són possibles.

ingenu> len()> length_hint()

ingenu> len()=length_hint()

ingenu> pista_longitud()>len()

ingenu> pista_longitud()> len()

Hem parlat de 8 mètodes diferents per trobar la longitud d'una llista a Python. També hem fet una anàlisi de rendiment per comprovar quin mètode és el millor.

Podeu utilitzar qualsevol dels mètodes anteriors per trobar la longitud d'una llista. Trobar la longitud de la llista és molt útil quan es tracta de llistes enormes i voleu comprovar el nombre d'entrades.

1nf 2nf 3nf

Consulteu més pàgines de llistes de Python: