A veces, mientras trabajamos con Python, podemos encontrarnos con un problema en el que necesitamos encontrar la suma de la lista. Este problema es más fácil de resolver. Pero esto puede volverse complejo en caso de que tengamos una combinación de tipos de datos que lo acompañen. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: uso de la conversión de tipos + manejo de excepciones
Podemos emplear un método de fuerza bruta para escribir la conversión de tipos de cada elemento y capturar la excepción si ocurre alguna. Esto puede garantizar que solo se agreguen números enteros a la suma y, por lo tanto, puede resolver el problema.
Python3
# Python3 code to demonstrate working of # Summation of integers in heterogeneous list # using type caste and exception handling # initializing list test_list = [5, 6, "gfg", 8, (5, 7), 'is', 9] # printing original list print("The original list is : " + str(test_list)) # Summation of integers in heterogeneous list # using type caste and exception handling res = 0 for ele in test_list: try: res += int(ele) except : pass # printing result print("Summation of integers in list : " + str(res))
The original list is : [5, 6, 'gfg', 8, (5, 7), 'is', 9] Summation of integers in list : 28
Método #2: Usar sum() + isinstance()
Este problema también se puede resolver usando la función incorporada de sum() y también admite el filtro de instancia usando isinstance() que se puede alimentar con un número entero y, por lo tanto, resolver el problema.
Python3
# Python3 code to demonstrate working of # Summation of integers in heterogeneous list # using sum() + isinstance() # initializing list test_list = [5, 6, "gfg", 8, (5, 7), 'is', 9] # printing original list print("The original list is : " + str(test_list)) # Summation of integers in heterogeneous list # using sum() + isinstance() res = sum(filter(lambda i: isinstance(i, int), test_list)) # printing result print("Summation of integers in list : " + str(res))
The original list is : [5, 6, 'gfg', 8, (5, 7), 'is', 9] Summation of integers in list : 28
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA