Dada una lista, elimine todas las ocurrencias de y antes del elemento x en la lista.
Entrada : test_list = [4, 5, 7, 4, 6, 7, 4, 9, 1, 4], x, y = 6, 4 Salida: [5, 7, 6, 7, 4, 9,
1 , 4]
Explicación : se eliminan todas las ocurrencias de 4 antes de 6.Entrada : test_list = [4, 5, 7, 4, 6, 7, 4, 9, 1, 4], x, y = 6, 7 Salida: [4, 5, 4, 6, 7, 4,
9 , 1, 4]
Explicación : se eliminan todas las ocurrencias de 7 antes de 6.
Método #1: Usar lista de comprensión + index()
En esto, obtenemos el índice de x usando index(), y buscamos y antes de x, si está presente, se excluye de la lista de resultados. La iteración y la comparación se realizan mediante la comparación de listas.
Python3
# Python3 code to demonstrate working of # Remove each y occurrence before x in List # Using list comprehension + index() # initializing list test_list = [4, 5, 7, 4, 6, 7, 4, 9, 1, 4] # printing original lists print("The original list is : " + str(test_list)) # initializing x and y x, y = 6, 4 # getting index using index() xidx = test_list.index(x) # retain all values other than y, and y if its index greater than x index res = [ele for idx, ele in enumerate(test_list) if ele != y or (ele == y and idx > xidx) ] # printing result print("Filtered List " + str(res))
Producción:
The original list is : [4, 5, 7, 4, 6, 7, 4, 9, 1, 4] Filtered List [5, 7, 6, 7, 4, 9, 1, 4]
Método #2: Usar loop + index()
Esta tarea de filtrado se realiza mediante operadores de comparación en el bucle, index(), se utiliza para obtener el índice de x en la lista.
Python3
# Python3 code to demonstrate working of # Remove each y occurrence before x in List # Using loop + index() # initializing list test_list = [4, 5, 7, 4, 6, 7, 4, 9, 1, 4] # printing original lists print("The original list is : " + str(test_list)) # initializing x and y x, y = 6, 4 # getting index using index() xidx = test_list.index(x) # filtering using comparison operators res = [] for idx, ele in enumerate(test_list): if ele != y or (ele == y and idx > xidx): res.append(ele) # printing result print("Filtered List " + str(res))
Producción:
The original list is : [4, 5, 7, 4, 6, 7, 4, 9, 1, 4] Filtered List [5, 7, 6, 7, 4, 9, 1, 4]
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