Programa de Python para eliminar cada ocurrencia de y antes de x en la Lista

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

Deja una respuesta

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