Dada una Array, la tarea es escribir un programa en Python para realizar diferencias con la fila anterior sobre la base de los elementos presentes.
Entrada: lista_prueba = [[5, 6, 3, 1], [7, 5, 3, 1], [3, 2], [7, 3, 3, 2], [2, 3], [9, 8, 1]]
Salida: [[], [7], [2], [7], [], [8, 9, 1]]
Explicación: al comparar la 1.ª y la 2.ª fila, solo existe 7 en la 2.ª fila y no en la 1.ª, por lo que se genera [7].
Entrada: lista_prueba = [[5, 6], [7, 5, 3, 1], [3, 4], [7], [2, 9], [9, 8, 1]]
Salida: [[], [1, 3, 7], [4], [7], [9, 2], [8, 1]]
Explicación: al comparar la segunda y la tercera lista, solo 4 está presente en la tercera lista y no en la segunda, por lo tanto, la salida.
Ejemplo: Usar set.difference() + loop
En esto, se mantiene el conjunto anterior, que lleva la pista del conjunto anterior para obtener la diferencia. Esto elimina todos los elementos de la lista actual que ya están presentes en la lista anterior.
Python3
# Python3 code to demonstrate working of # Successive row difference in Matrix # Using set.difference + loop # initializing list test_list = [[5, 6, 3, 1], [7, 5, 3, 1], [3, 2], [7, 3, 3, 2], [2, 3], [9, 8, 1]] # printing original list print("The original list is : " + str(test_list)) res = [] prev = set(test_list[0]) for ele in test_list: # appending difference set diff with previous # element res.append(list(set(ele).difference(prev))) # updating prev. for comparison prev = set(ele) # printing result print("Successive Row difference : " + str(res))
Producción:
La lista original es: [[5, 6, 3, 1], [7, 5, 3, 1], [3, 2], [7, 3, 3, 2], [2, 3], [9 , 8, 1]]
Diferencia de fila sucesiva: [[], [7], [2], [7], [], [8, 9, 1]]
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