Los problemas relacionados con la array son bastante comunes tanto en la programación competitiva como en el dominio de la ciencia de datos. Uno de esos problemas que podríamos enfrentar es encontrar las longitudes de las filas de la array en una array de tamaño desigual. Analicemos ciertas formas en que se puede resolver este problema.
Método #1: Usar max() + map() + sum()
+ comprensión de lista
La combinación de las funciones anteriores puede ayudar a obtener la solución a este problema en particular en solo una línea y, por lo tanto, es bastante útil. La función de suma calcula la suma de las sublistas, la función max se puede usar para ordenar de forma descendente y todo esto unido mediante la comprensión de listas.
# Python3 code to demonstrate # Row lengths in matrix # using max() + map() + sum() + list comprehension # initializing list test_list = [[4, 5, 6], [7, 8], [2]] # printing original list print("The original list : " + str(test_list)) # using max() + map() + sum() + list comprehension # Row lengths in matrix res = [sum(len(row) > idx for row in test_list) for idx in range(max(map(len, test_list)))] # print result print("The row lengths in matrix : " + str(res))
The original list : [[4, 5, 6], [7, 8], [2]] The row lengths in matrix : [3, 2, 1]
Método #2: Usarsum() + filter() + zip_longest()
Este problema también se puede resolver usando el conjunto de funciones anterior. La función de filtro se puede usar para obtener las listas separadas y la función zip_longest realiza la tarea de enlace para la suma realizada por la función sum.
# Python3 code to demonstrate # Row lengths in matrix # using sum() + filter() + zip_longest() from itertools import zip_longest # initializing list test_list = [[4, 5, 6], [7, 8], [2]] # printing original list print("The original list : " + str(test_list)) # using sum() + filter() + zip_longest() # Row lengths in matrix res = [sum(1 for idx in filter(None.__ne__, i)) for i in zip_longest(*test_list)] # print result print("The row lengths in matrix : " + str(res))
The original list : [[4, 5, 6], [7, 8], [2]] The row lengths in matrix : [3, 2, 1]
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