Python | Conversión a array de tupla N*N

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

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

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

Deja una respuesta

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