Dada una lista, la tarea es escribir un programa en Python para marcar la aparición duplicada de elementos con un número de aparición progresivo.
Entrada: test_list = [‘gfg’, ‘is’, ‘best’, ‘gfg’, ‘best’, ‘for’, ‘all’, ‘gfg’]
Salida: [‘gfg1’, ‘es’, ‘mejor1’, ‘gfg2’, ‘mejor2’, ‘para’, ‘todos’, ‘gfg3’]
Explicación: todas las ocurrencias de gfg están marcadas porque tienen múltiples repeticiones (3).
Entrada: test_list = [‘gfg’, ‘is’, ‘best’, ‘best’, ‘for’, ‘all’]
Salida: [‘gfg’, ‘es’, ‘mejor1’, ‘mejor2’, ‘para’, ‘todos’]
Explicación: las mejores ocurrencias están marcadas ya que tienen múltiples repeticiones (2).
Método 1: Usando count() + enumerate() + lista de comprensión + rebanado
En esto, para obtener el recuento duplicado, la lista se divide en el índice del elemento actual, y el recuento de ocurrencias de ese elemento hasta el índice actual se calcula utilizando count() y append.
Python3
# Python3 code to demonstrate working of # Mark duplicate elements # Using count() + enumerate() + list comprehension + slicing # initializing list test_list = ["gfg", "is", "best", "gfg", "best", "for", "all", "gfg"] # printing original list print("The original list is : " + str(test_list)) # getting count till current using count() and slicing res = [val + str(test_list[:idx].count(val) + 1) if test_list.count(val) > 1 else val for idx, val in enumerate(test_list)] # printing result print("Duplicates marked List : " + str(res))
Producción:
La lista original es: [‘gfg’, ‘is’, ‘best’, ‘gfg’, ‘best’, ‘for’, ‘all’, ‘gfg’]
Lista de duplicados marcados: [‘gfg1’, ‘is’, ‘best1’, ‘gfg2’, ‘best2’, ‘for’, ‘all’, ‘gfg3’]
Método 2: Usando map() + count() + lambda
De manera similar al método anterior, la única diferencia es que map() se usa para obtener una función que usa lambda para extenderse a todos los elementos de la lista.
Python3
# Python3 code to demonstrate working of # Mark duplicate elements # Using map() + count() + lambda # initializing list test_list = ["gfg", "is", "best", "gfg", "best", "for", "all", "gfg"] # printing original list print("The original list is : " + str(test_list)) # getting count till current using count() and slicing res = list(map(lambda ele: ele[1] + str(test_list[ : ele[0]].count(ele[1]) + 1) if test_list.count(ele[1]) > 1 else ele[1], enumerate(test_list))) # printing result print("Duplicates marked List : " + str(res))
Producción:
La lista original es: [‘gfg’, ‘is’, ‘best’, ‘gfg’, ‘best’, ‘for’, ‘all’, ‘gfg’]
Lista de duplicados marcados: [‘gfg1’, ‘is’, ‘best1’, ‘gfg2’, ‘best2’, ‘for’, ‘all’, ‘gfg3’]
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