Вы можете использовать Counter
или defaultdict(int)
, чтобы отслеживать, сколько раз персонаж был замечен, когда вы сталкиваетесь с ним.
>>> from collections import Counter
>>>
>>> temp = ['A', 'B', 'A', 'B', 'A', 'B']
>>> seen = Counter()
>>>
>>> result = []
>>> for c in temp:
...: seen.update(c)
...: result.append('{}_{}'.format(c, seen[c]))
...:
>>> result
>>> ['A_1', 'B_1', 'A_2', 'B_2', 'A_3', 'B_3']
Обратите внимание, что seen.update(c)
может привести к неожиданным результатам, если вы ожидаете строки с более чем одним символом в temp
. Демонстрация:
>>> seen = Counter()
>>> seen.update('ABC')
>>> seen
>>> Counter({'A': 1, 'B': 1, 'C': 1})
В зависимости от того, как вы хотите считать и какие данные вы ожидаете, вы можете использовать строку
seen[c] += 1
вместо
seen.update(c)
В качестве альтернативы, без импорта:
>>> seen = {}
>>> result = []
>>>
>>> for c in temp:
...: seen[c] = seen.get(c, 0) + 1
...: result.append('{}_{}'.format(c, seen[c]))
...:
>>> result
>>> ['A_1', 'B_1', 'A_2', 'B_2', 'A_3', 'B_3']