A veces, mientras trabajamos con Python Matrix, podemos tener un problema en el que necesitamos realizar la conversión de una array de Python a una array de tuplas con un valor adjunto personalizado en fila desde una lista externa. Este tipo de problema puede tener aplicación en dominios de datos ya que Matrix es el DS integral que se utiliza. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [[4, 5], [7, 3]], add_list = [‘Gfg’, ‘best’] Salida : [(‘Gfg’, 4), (‘Gfg’, 5), (‘ mejor’, 7), (‘mejor’, 3)] Entrada : test_list = [[4, 5]], add_list = [‘Gfg’] Salida : [(‘Gfg’, 4), (‘Gfg’, 5 )]
Método #1: Usar loop + zip() La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de vincular el valor personalizado a cada elemento de la fila usando zip(). Esta es una forma de fuerza bruta para realizar esta tarea.
Python3
# Python3 code to demonstrate working of # Convert Matrix to Custom Tuple Matrix # Using zip() + loop # initializing lists test_list = [[4, 5, 6], [6, 7, 3], [1, 3, 4]] # printing original list print("The original list is : " + str(test_list)) # initializing List elements add_list = ['Gfg', 'is', 'best'] # Convert Matrix to Custom Tuple Matrix # Using zip() + loop res = [] for idx, ele in zip(add_list, test_list): for e in ele: res.append((idx, e)) # printing result print("Matrix after conversion : " + str(res))
Método n.° 2: Uso de la comprensión de listas + zip() Esta es otra forma más en la que se puede realizar esta tarea. En esto, realizamos una tarea similar al método anterior, solo como una abreviatura.
Python3
# Python3 code to demonstrate working of # Convert Matrix to Custom Tuple Matrix # Using list comprehension + zip() # initializing lists test_list = [[4, 5, 6], [6, 7, 3], [1, 3, 4]] # printing original list print("The original list is : " + str(test_list)) # initializing List elements add_list = ['Gfg', 'is', 'best'] # Convert Matrix to Custom Tuple Matrix # Using list comprehension + zip() res = [(ele1, ele2) for ele1, sub in zip(add_list, test_list) for ele2 in sub] # printing result print("Matrix after conversion : " + str(res))
La Complejidad de Tiempo y Espacio es la misma para ambos métodos:
Complejidad temporal: O(n 2 )
Complejidad espacial: O(n)
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