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))
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))
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