Python | Índices de elementos duplicados en la lista

Mientras trabajamos con la lista de Python, a veces, necesitamos verificar si hay duplicados y, a veces, también es posible que necesitemos rastrear sus índices. Este tipo de aplicación puede ocurrir en la programación día a día. Analicemos ciertas formas en que se puede resolver este problema.

Método #1: Usar bucle +set()
Esta tarea se puede resolver usando la combinación de las funciones anteriores. En esto, simplemente insertamos todos los elementos en el conjunto y luego comparamos la existencia de cada elemento en la lista real. Si es la segunda ocurrencia o más, entonces se agrega el índice en la lista de resultados.

# Python3 code to demonstrate working of
# Duplicate element indices in list
# Using set() + loop
  
# initializing list
test_list = [1, 4, 5, 5, 5, 9, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Duplicate element indices in list
# Using set() + loop
oc_set = set()
res = []
for idx, val in enumerate(test_list):
    if val not in oc_set:
        oc_set.add(val)         
    else:
        res.append(idx)     
          
# printing result
print("The list of duplicate elements is :  " + str(res))
Producción :

The original list is : [1, 4, 5, 5, 5, 9, 1]
The list of duplicate elements is :  [3, 4, 6]

Método n.º 2: Uso de la comprensión de listas + segmentación de listas
Este método es una alternativa lineal para realizar esta tarea. En esto, solo verificamos el elemento que no se repite usando el corte de lista y seguimos agregando índice en caso de que se repita.

# Python3 code to demonstrate working of
# Duplicate element indices in list
# Using list comprehension + list slicing
  
# initializing list
test_list = [1, 4, 5, 5, 5, 9, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Duplicate element indices in list
# Using list comprehension + list slicing
res = [idx for idx, val in enumerate(test_list) if val in test_list[:idx]]
          
# printing result
print("The list of duplicate elements is :  " + str(res))
Producción :

The original list is : [1, 4, 5, 5, 5, 9, 1]
The list of duplicate elements is :  [3, 4, 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

Deja una respuesta

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