Programa de Python para devolver filas que tienen un elemento en un índice específico

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

Deja una respuesta

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