Dadas dos arrays, la tarea es escribir un programa de Python que pueda extraer todas las filas de ambas arrays que tienen un elemento similar en su índice Kth, mapeado en una posición de fila similar.
Ejemplos:
Entrada: lista_prueba1 = [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 4, 4]], lista_prueba2 = [[1, 9, 3], [ 8, 2, 3], [5, 4, 6], [5, 4, 6]], K = 1
Salida: [[9, 2, 0], [8, 2, 3], [6, 4, 4], [5, 4, 6], [6, 4, 4], [5, 4, 6] ]
Explicación: se extrajeron todos los elementos con elementos similares en el primer índice.
Entrada: lista_prueba1 = [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 5, 4]], lista_prueba2 = [[1, 9, 3], [ 8, 2, 3], [5, 4, 6], [5, 4, 6]], K = 1
Salida: [[9, 2, 0], [8, 2, 3], [6, 4, 4], [5, 4, 6]]
Explicación: se extrajeron todos los elementos con elementos similares en el primer índice.
Método 1: usar bucle y enumerar()
En esto, la lista se itera desde la fila inicial hasta el final, y el índice Kth de cada fila se compara; si se encuentra, ambas filas se agregan al resultado.
Ejemplo:
Python3
# initializing lists test_list1 = [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 4, 4]] test_list2 = [[1, 9, 3], [8, 2, 3], [5, 4, 6], [5, 4, 6]] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # initializing K K = 1 res = [] for idx in range(len(test_list1)): # comparing lists if test_list1[idx][K] == test_list2[idx][K]: res.append(test_list1[idx]) res.append(test_list2[idx]) # printing result print("K index matching rows : " + str(res))
Producción:
La lista original 1 es: [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 4, 4]]
La lista original 2 es: [[1, 9, 3], [8, 2, 3], [5, 4, 6], [5, 4, 6]]
Filas de coincidencia de índice K: [[9, 2, 0], [8, 2, 3], [6, 4, 4], [5, 4, 6], [6, 4, 4], [5, 4 , 6]]
Método 2: usar la comprensión de listas y zip()
En esto, realizamos la tarea de obtener el emparejamiento usando zip(), y luego comparamos el elemento Kth, agregamos e iteramos usando extend() y lista de comprensión.
Ejemplo:
Python3
# initializing lists test_list1 = [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 4, 4]] test_list2 = [[1, 9, 3], [8, 2, 3], [5, 4, 6], [5, 4, 6]] # printing original lists print("The original list 1 is : " + str(test_list1)) print("The original list 2 is : " + str(test_list2)) # initializing K K = 1 # zip() combines elements together res = [] [res.extend([t1, t2]) for t1, t2 in zip(test_list1, test_list2) if t1[K] == t2[K]] # printing result print("K index matching rows : " + str(res))
Producción:
La lista original 1 es: [[1, 8, 3], [9, 2, 0], [6, 4, 4], [6, 4, 4]]
La lista original 2 es: [[1, 9, 3], [8, 2, 3], [5, 4, 6], [5, 4, 6]]
Filas de coincidencia de índice K: [[9, 2, 0], [8, 2, 3], [6, 4, 4], [5, 4, 6], [6, 4, 4], [5, 4 , 6]]
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