Dada la lista de tuplas, la tarea es extraer todas las tuplas donde los elementos del índice Kth no están presentes en la lista de argumentos.
Entrada : lista_prueba = [(5, 3), (7, 4), (1, 3), (7, 8), (0, 6)], lista_arg = [6, 8, 8], K = 1
Salida : [(5, 3), (7, 4), (1, 3)]
Explicación : se eliminan todos los elementos que tienen 6 u 8 en el primer índice.
Entrada : test_list = [(5, 3), (7, 4)], arg_list = [3, 3, 3, 3], K = 1
Salida : [(7, 4)]
Explicación : (5, 3) se elimina porque tiene 3 en el primer índice.
Método #1: Usar set() + bucle
Esta es una forma en que esta tarea puede ser. En esto, acortamos la lista de argumentos usando set y luego verificamos de manera eficiente si el índice Kth tiene algún elemento de arg. enumere y agregue según corresponda.
Python3
# Python3 code to demonstrate working of # Extract records if Kth elements not in List # Using loop # initializing list test_list = [(5, 3), (7, 4), (1, 3), (7, 8), (0, 6)] # printing original list print("The original list : " + str(test_list)) # initializing arg. list arg_list = [4, 8, 4] # initializing K K = 1 # Using set() to shorten arg list temp = set(arg_list) # loop to check for elements and append res = [] for sub in test_list: if sub[K] not in arg_list: res.append(sub) # printing result print("Extracted elements : " + str(res))
The original list : [(5, 3), (7, 4), (1, 3), (7, 8), (0, 6)] Extracted elements : [(5, 3), (1, 3), (0, 6)]
Método n.° 2: usar la comprensión de listas + set()
Esta es otra forma más en la que se puede realizar esta tarea. En esto, compilamos tanto la tarea de filtrar duplicados usando set() como la de compilar elementos usando condicionales dentro de la comprensión de listas.
Python3
# Python3 code to demonstrate working of # Extract records if Kth elements not in List # Using list comprehension + set() # initializing list test_list = [(5, 3), (7, 4), (1, 3), (7, 8), (0, 6)] # printing original list print("The original list : " + str(test_list)) # initializing arg. list arg_list = [4, 8, 4] # initializing K K = 1 # Compiling set() and conditionals into single comprehension res = [(key, val) for key, val in test_list if val not in set(arg_list)] # printing result print("Extracted elements : " + str(res))
The original list : [(5, 3), (7, 4), (1, 3), (7, 8), (0, 6)] Extracted elements : [(5, 3), (1, 3), (0, 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