Я пытаюсь заменить дублирующую строку на дублированное целое число.Например:
mylist = ["name", "state", "name", "city", "city", "name", "zip", "zip", "name"]
Я хочу, чтобы список был
mylist = [1, 'State', 1, 2,2,1,3,3,1]
Все имена переименованы в 1, город в 2 и zip 3. Если будет больше дубликатов, они также будут переименованы в4, 5 6 и т. Д.
Я пробовал с
mylist = ["name", "state", "name", "city", "name", "zip", "zip"]
from collections import Counter
counts = Counter(mylist)
for s,num in counts.items():
if num > 1:
mylist[mylist.index(s)] = 1
Но получил
mylist = [1, 'state', 'name', 'city', 'name', 1, 'zip']
Как получить 1 для имени, 2 для города, 3 для почтового индексаи 4 для следующего повторного значения?