I’m trying to add a character to a specific duplicate string, like in the following situation:
nomes_comp = ['Fulano A', 'Beltrano B', 'Fulano A']
So I have duplicate items on my list; I would like to add another character in one of the duplicate items, hoping to get the following output:
nomes_comp = ['Fulano A', 'Beltrano B', 'Fulano A1']
I’m trying this way, but it’s not working:
for nome in zip(nomes[0], nomes[1]): nomes_comp.append(nome[0] + ' ' + nome[1])
Advertisement
Answer
Use a dictionary (or a collections.defaultdict) to keep track of how many occurrences you’ve found.
nomes_comp = ['Fulano A', 'Beltrano B', 'Fulano A']
count_d = dict()
for i, n in enumerate(nomes_comp):
    c = count_d.get(n, 0)
    count_d[n] = c + 1
    if c:
        nomes_comp[i] = n + str(c)
After you do this, the original nomes_comp is modified to:
['Fulano A', 'Beltrano B', 'Fulano A1']
