У меня есть список строк. Я хочу назначить уникальный номер каждой строке (точное число не важно) и создать список с той же длиной, используя эти цифры, по порядку. Ниже моя лучшая попытка на него, но я не счастлив по двум причинам:Назначьте число для каждого уникального значения в списке
Он предполагает, что одни и те же значения находятся рядом друг с другом
я должен был начать список с
0
, в противном случае результат будет неправильным
Мой код:
names = ['ll', 'll', 'll', 'hl', 'hl', 'hl', 'LL', 'LL', 'LL', 'HL', 'HL', 'HL']
numbers = [0]
num = 0
for item in range(len(names)):
if item == len(names) - 1:
break
elif names[item] == names[item+1]:
numbers.append(num)
else:
num = num + 1
numbers.append(num)
print(numbers)
Я хочу сделать код более общим, поэтому он будет работать с неизвестным списком. Есть идеи?
как насчет сортировки списка перед применением алгоритма –