Métodos y técnicas avanzadas de listas de Python

Las listas son como arrays de tamaño dinámico, declaradas en otros lenguajes (vector en C++ y ArrayList en Java). Las listas no necesitan ser siempre homogéneas, lo que las convierte en una herramienta muy poderosa en Python. Una sola lista puede contener tipos de datos como enteros, strings y objetos. Las listas son mutables y, por lo tanto, pueden modificarse incluso después de su creación.

Las listas son una de las herramientas más poderosas de Python. Tienen muchos trucos ocultos que los hacen extremadamente versátiles. ¡Exploremos algunas de estas técnicas útiles que nos hacen la vida mucho más fácil!

Ordenar una lista  

Para ordenar una lista en orden ascendente o descendente, usamos la función sort() con la siguiente sintaxis:

For ascending order: 
list.sort()
For descending order: 
list.sort(reverse=True)

Ejemplo:

Python3

# sorting a list using sort() function
 
my_list = [5, 2, 90, 24, 10]
 
 
# sorting in ascending order it permanently
# changes the order of the list
my_list.sort()
print(my_list)
 
# sorting in descending order it permanently
# changes the order of the list
my_list.sort(reverse=True)
print(my_list)

Producción:

[2, 5, 10, 24, 90]
[90, 24, 10, 5, 2]

Para cambiar temporalmente el orden de la lista, use la función sorted() con la sintaxis: 

list.sorted()

Python3

# temporary sorting using sorted() method
 
my_list = [5, 2, 90, 24, 10]
 
# ascending order
print(sorted(my_list))
 
# descending order
my_list_2 = sorted(my_list)
print(my_list)

Producción:

[2, 5, 10, 24, 90]
[5, 2, 90, 24, 10]

Invertir una lista

Para invertir el orden de una lista usamos la función reverse() . Su sintaxis es:

list.reverse()

Ejemplo:

Python3

# reverse a list using reverse()
 
my_list = [5, 2, 90, 24, 10]
 
# reverse
my_list.reverse()
print(my_list)

Producción:

[10, 24, 90, 2, 5]

O podríamos aplicar la comprensión de listas para invertir una lista:

 list = list[::-1]

Ejemplo:

Python3

# reverse using list comprehension
my_list = [5, 2, 90, 24, 10]
 
# reverse
print(my_list[::-1])

Producción:

[10, 24, 90, 2, 5]

Eliminar duplicados

Como los diccionarios en python no contienen claves duplicadas. Usamos la función dict.fromkeys() para convertir nuestra lista en un diccionario con elementos de lista como claves. Y luego volvemos a convertir el diccionario a la lista. 

Este es un poderoso truco para eliminar automáticamente todos los duplicados. Su sintaxis es:

My_list =[‘a’, ’b’, ’c’, ’b’, ’a’]
Mylist = list(dict.fromkeys(My_List))

Ejemplo:

Python3

# removing duplicates from a list using dictionaries
 
my_list_1 = [5, 2, 90, 24, 10, 2, 90, 34]
my_list_2 = ['a', 'a', 'a', 'b', 'c', 'd', 'd', 'e']
 
# removing duplicates from list 1
my_list_1 = list(dict.fromkeys(my_list_1))
print(my_list_1)
 
# removing duplicates from list 2
my_list_2 = list(dict.fromkeys(my_list_2))
print(my_list_2)

Producción:

[5, 2, 90, 24, 10, 34]
['a', 'b', 'c', 'd', 'e']

Filtrar una lista

Las listas de Python se pueden filtrar con la ayuda de la función filter() o con la ayuda de la comprensión de listas. A continuación se muestra la sintaxis:

My_list = list(filter(filter_function , iterable_item))

La función Filter devuelve un objeto iterador que debemos volver a convertir en la lista.

Ejemplo:

Python3

# filtering with the help of filter() function
# creating a filter function filter all the values less than 20
 
# filter function
def my_filter(n):
    if n > 20:
        return n
 
       
# driver code
if __name__ == "__main__":
    my_list = [5, 2, 90, 24, 10, 2, 95, 36]
    my_filtered_list = list(filter(my_filter, my_list))
    print(my_filtered_list)

Producción:

[90, 24, 95, 36]

También podemos filtrar por comprensión de listas. Es una forma mucho más fácil y elegante de filtrar listas, a continuación se muestra la sintaxis:

My_list = [item for item in my_list if (condition)]

Ejemplo:

Python3

# filtering with the help of list comprehension
my_list = [5, 2, 90, 24, 10, 2, 95, 36]
 
# an elegant way to sort the list
my_list = [item for item in my_list if item > 20]
print(my_list)

Producción:

[90, 24, 95, 36]

Lista de modificación

Para modificar los valores de la lista con la ayuda de una función externa, hacemos uso de la función map(). La función Map() devuelve un objeto de mapa (iterador) de los resultados después de aplicar la función dada a cada elemento de un iterable dado (lista, tupla, etc.). A continuación se muestra la sintaxis:

My_list = list(map(function,iterable))

Ejemplo:

Python3

# using map() function to modify the text
def squaring(n):
    return n**2
 
# driver code
if __name__ == "__main__":
    my_list = [5, 2, 90, 24, 10, 2, 95, 36]
 
    my_squared_list = list(map(squaring, my_list))
    print(my_squared_list)

Producción:

[25, 4, 8100, 576, 100, 4, 9025, 1296]

Un enfoque mucho más limpio es usar la comprensión de listas.

Ejemplo:

Python3

# the same result can be obtained by a much pythonic approach
# i.e., by using list comprehension
my_list = [5, 2, 90, 24, 10, 2, 95, 36]
 
print([i**2 for i in my_list])

Producción:

[25, 4, 8100, 576, 100, 4, 9025, 1296]

Combinando listas  

Incluso podemos combinar listas con la ayuda de la función zip() que da como resultado una lista de tuplas. Aquí, cada elemento de la lista A se combina con los elementos correspondientes de la lista B en forma de tupla. A continuación se muestra la sintaxis:

My_list = zip(list_1, list_2)

Ejemplo:

Python3

# combing lists with the help of zip() function
my_list_1 = [5, 2, 90, 24, 10]
my_list_2 = [6, 3, 91, 25, 12]
 
# combined
my_combined_list = list(zip(my_list_1, my_list_2))
print(my_combined_list)

Producción:

[(5, 6), (2, 3), (90, 91), (24, 25), (10, 12)]

Encontrar el elemento más común

Para encontrar el elemento más frecuente hacemos uso de la función set() . La función set() elimina todos los duplicados de la lista y la función max() devuelve el elemento más frecuente (que se encuentra con la ayuda de ‘clave’). La clave es una función de argumento único opcional. A continuación se muestra la sintaxis:

Most_frequent_value =max(set(my_list),key=mylist.count)

Ejemplo :

Python3

# to find the most frequent element from the list
my_list = ['a', 'a', 'a', 'b', 'c', 'd', 'd', 'e']
 
most_frequent_value = max(set(my_list), key=my_list.count)
 
print("The most common element is:", most_frequent_value)

Producción:

The most common element is: a

Comprobar la pertenencia a una lista

Para verificar si un elemento existe en una lista, usamos la instrucción in

Ejemplo:

Python3

my_list = ['a', 'a', 'a', 'b', 'c', 'd', 'd', 'e']
 
# to check whether 'c' is a member of my_list
# returns true if present
print('c' in my_list) 
 
# to check whether 'f' is a member of my_list
# returns false if not present
print('f' in my_list)

Producción:

True
False

Aplanar una lista de listas

A veces nos encontramos con una lista donde cada elemento en sí mismo es una lista. Para convertir una lista de listas en una sola lista, usamos la comprensión de listas.

my_list = [item  for List in list_of_lists for item in List ]

Ejemplo:

Python3

# to flatten a list_of_lists by using list comprehension
list_of_lists = [[1, 2],
                 [3, 4],
                 [5, 6],
                 [7, 8]]
 
# using list comprehension
my_list = [item for List in list_of_lists for item in List]
print(my_list)

Producción:

[1, 2, 3, 4, 5, 6, 7, 8]

Publicación traducida automáticamente

Artículo escrito por mprerna802 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *