Python | Longitudes de fila en Matrix

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))
Producción :

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))
Producción :

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

Deja una respuesta

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