A veces, mientras trabajamos con datos, podemos tener un problema en el que tenemos datos en forma de array de tupla con filas de longitud desigual. En este caso, existe el requisito de completar la array N*N con un valor predeterminado. Analicemos ciertas formas en que se puede resolver este problema.
Método #1: Usar loop +* operator
Este problema se puede resolver usando loop. Este es un método de fuerza bruta para realizar esta tarea. Simplemente agregamos el valor predeterminado tantas veces, ya que faltan datos en una fila que N.
# Python3 code to demonstrate working of # Conversion to N * N tuple matrix # using loop + * operator # initialize tuple test_tup = ((5, 4), (3, ), (1, 5, 6, 7), (2, 4, 5)) # printing original tuple print("The original tuple is : " + str(test_tup)) # initializing dimension N = 4 # Conversion to N * N tuple matrix # using loop + * operator res = [] for tup in test_tup : res.append( tup +(0, ) * (N - len(tup))) # printing result print("Tuple after filling values : " + str(res))
The original tuple is : ((5, 4), (3, ), (1, 5, 6, 7), (2, 4, 5)) Tuple after filling values : [(5, 4, 0, 0), (3, 0, 0, 0), (1, 5, 6, 7), (2, 4, 5, 0)]
Método n.º 2: usar tuple()
la expresión del generador +
Se puede realizar una tarea similar en una línea usando la expresión del generador. En esto, se aplica una lógica similar a la anterior, simplemente comprimida como una sola línea. El tuple()
, cambia el resultado a tupla.
# Python3 code to demonstrate working of # Conversion to N * N tuple matrix # using tuple() + generator expression # initialize tuple test_tup = ((5, 4), (3, ), (1, 5, 6, 7), (2, 4, 5)) # printing original tuple print("The original tuple is : " + str(test_tup)) # initializing dimension N = 4 # Conversion to N * N tuple matrix # using tuple() + generator expression res = tuple(sub + (0, ) * (N-len(sub)) for sub in test_tup) # printing result print("Tuple after filling values : " + str(res))
The original tuple is : ((5, 4), (3, ), (1, 5, 6, 7), (2, 4, 5)) Tuple after filling values : ((5, 4, 0, 0), (3, 0, 0, 0), (1, 5, 6, 7), (2, 4, 5, 0))
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