Python: eliminar duplicados consecutivos alternativos

Dada la lista de elementos, elimine duplicados consecutivos alternos de elementos.

Entrada : test_list = [5, 5, 5, 5, 6, 6]
Salida : [5, 5, 6]
Explicación : Occ. alterna. de 5 y 6 se eliminan.

Entrada : test_list = [5, 5, 5, 5]
Salida : [5, 5]
Explicación : Occ. alterno. de 5 se eliminan.

Método: usando loop + remove()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, iteramos cada elemento y usamos una variable de elemento anterior adicional para realizar un seguimiento de los criterios alternativos. La eliminación se realiza mediante remove().

Python3

# Python3 code to demonstrate working of 
# Remove alternate consecutive duplicates
# Using loop + remove()
  
# initializing lists
test_list = [5, 5, 5, 5, 6, 6, 8, 3, 3, 8]
  
# printing original list
print("The original list : " + str(test_list))
  
# Using loop to iterate through elements
# element to keep track
temp = test_list[0]
count = 0
org_list = test_list
idx = 0
while(1):
      
    # break when idx greater than size
    if idx >= len(org_list):
        break
      
    # check for alternates 
    if count % 2 and temp == test_list[idx]:
        test_list.remove(test_list[idx])
        idx = idx - 1
        count += 1
        temp = test_list[idx]
    else:
          
        # keeping track of alternate index increment
        # and assignment
        if temp != test_list[idx]:
            count = 1
            temp = test_list[idx]
        else :
            count += 1
    idx = idx + 1
  
# printing result 
print("List after alternate duplicates removal : " + str(test_list))
Producción

The original list : [5, 5, 5, 5, 6, 6, 8, 3, 3, 8]
List after alternate duplicates removal : [5, 5, 6, 8, 3, 8]

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 *