logo

Cómo encontrar la longitud de una lista en Python

Todos los usuarios de Python deben aprender que List es una parte integral de la programación de Python y tener conocimiento de su utilidad y operaciones es esencial y siempre una ventaja.

Muchas operaciones se realizan en listas, pero en este artículo analizaremos la longitud de una lista. La longitud de una lista significa la cantidad de elementos que tiene. Vamos a ver 8 métodos diferentes para encontrar la longitud de una lista en Pitón .

Ejemplo:



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

Encuentra la longitud de una lista en Python

A continuación se detallan los métodos que cubriremos en este artículo:

1. Encuentre la longitud de una lista usando la función len()

Pitón solo() La función es una función incorporada en Python. Se puede utilizar para encontrar la longitud de un objeto pasándolo entre paréntesis de la función len.

Python3




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

cadena java a int

>

>

Producción:

The length of list is: 3>

Complejidad del tiempo: O(n), donde n es la longitud de la lista
Espacio Auxiliar: O(1)

2. Encuentre la longitud de una lista utilizando un método ingenuo

En este método, simplemente se ejecuta un bucle y se aumenta el contador hasta el último elemento de la lista para saber su recuento. Esta es la estrategia más básica que posiblemente se pueda emplear en ausencia de otras técnicas actuales.

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

>

>

Producción:

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

Complejidad del tiempo: En)
Espacio Auxiliar: O(1)

3. Encuentre la longitud de una lista usando el método length_hint()

Esta técnica es una técnica menos conocida para encontrar la longitud de una lista. Este método particular está definido en la clase de operador y también puede indicar el no. de elementos presentes en la lista. Aquí, encontramos la longitud de la lista usando len() y 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))>

>

>

Producción :

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

4. Encuentre la longitud de una lista usando la función sum()

Use la iteración dentro de la suma y con cada iteración agregue uno y al final de la iteración, obtenemos la longitud total de la lista.

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

>

>

Producción:

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

5. Encuentre la longitud de una lista mediante la comprensión de listas

Inicializar una lista llamada lista_prueba con algunos valores, luego inicialice una variable llamada longitud en 0. Utilice una lista por comprensión para generar una secuencia de unos para cada elemento en test_list.

Esto creará una lista de unos con la misma longitud que test_list. Ahora use la función sum() para sumar todos los de la lista generada por el comprensión de la lista . Asigne la suma a la variable de longitud. Imprime la variable de longitud.

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

>

>

Producción

Length of list using list comprehension is: 5>

Complejidad del tiempo: La comprensión de la lista crea una nueva lista con una longitud igual a la longitud de test_list. La función sum() luego itera sobre esta lista para calcular la suma. Por lo tanto, la complejidad temporal de este algoritmo es O (N), donde N es la longitud de test_list.
Espacio Auxiliar: El algoritmo crea una nueva lista de unos con una longitud igual a la longitud de test_list utilizando la comprensión de lista. Por lo tanto, la complejidad del espacio auxiliar también es O (N), donde N es la longitud de test_list.

6. Encuentre la longitud de una lista mediante recursividad

Podemos usar un función recursiva eso requiere una lista lista como entrada y se llama a sí mismo de forma recursiva, pasando una porción de la lista que excluye el primer elemento hasta que la lista esté vacía.

El caso base es cuando la lista está vacía, en cuyo caso la función devuelve 0. De lo contrario, agrega 1 al resultado de llamar a la función en el resto de la lista.

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>

>

>

Producción

The length of the list is: 5>

Complejidad del tiempo: O(n) donde n es la longitud de la lista. Esto se debe a que la función realiza n llamadas recursivas, cada una de las cuales toma O(1) tiempo, y también se realiza O(1) trabajo en cada nivel fuera de la llamada recursiva.
Complejidad espacial: O(n) donde n es la longitud de la lista. Esto se debe a que la función crea n marcos de pila en la pila de llamadas debido a las llamadas recursivas.

7. Encuentre la longitud de una lista usando la función enumerate()

Pitón enumerar() El método agrega un contador a un iterable y lo devuelve en forma de objeto de enumeración.

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

>

>

Producción

5>

8. Encuentre la longitud de una lista usando colecciones

Alternativamente, también puede utilizar el suma() funciona junto con el método value() del Colecciones Objeto contador para obtener la longitud de la lista.

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>

>

>

Producción

Length of list using Counter() is: 5>

Complejidad del tiempo: O(n), donde n es la longitud de la lista. Esto se debe a que la función Counter() tiene una complejidad temporal de O(n) cuando se aplica a una lista de longitud n, y el método de valores() y la función sum() tienen una complejidad temporal de O(n) cuando se aplican. a una lista de longitud n.
La complejidad del espacio: O(n), como función Counter(), crea un diccionario con n pares clave-valor, cada uno de los cuales representa un elemento y su recuento en la lista, respectivamente. Este diccionario ocupa O(n) espacio.

Análisis de rendimiento: ingenuo frente a Python len() frente a Python length_hint()

A la hora de elegir entre alternativas siempre es necesario tener una razón válida para elegir una u otra. Esta sección hace un análisis de tiempo de cuánto tiempo lleva ejecutarlos todos para ofrecer una mejor opción de uso.

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

>

>

Producción:

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>

En las imágenes siguientes se puede ver claramente que el tiempo necesario es ingenuo>> length_hint()> len() , pero el tiempo necesario depende en gran medida del sistema operativo y de varios de sus parámetros.

En dos carreras consecutivas, es posible que obtengas resultados contrastantes; de hecho, a veces el ingenuo se lleva el menor tiempo de cada tres. Son posibles las 6 permutaciones posibles.

ingenuo> len()> length_hint()

ingenuo> len()=length_hint()

ingenuo> length_hint()>len()

ingenuo> length_hint()> len()

Hemos analizado 8 métodos diferentes para encontrar la longitud de una lista en Python. También hemos realizado un análisis de rendimiento para comprobar qué método es el mejor.

Puede utilizar cualquiera de los métodos anteriores para encontrar la longitud de una lista. Encontrar la longitud de la lista es muy útil cuando se trata de listas enormes y desea comprobar el número de entradas.

Consulte más páginas de listas de Python: