Mam listę ciągów. Chcę przypisać unikalny numer do każdego ciągu (dokładna liczba nie jest ważna) i utworzyć listę o tej samej długości, używając tych numerów w kolejności. Poniżej jest moja najlepsza próba na to, ale nie jestem zadowolony z dwóch powodów:Przypisanie numeru każdej unikatowej wartości na liście
Zakłada ona, że te same wartości są obok siebie
musiałem zacząć listę z
0
, w przeciwnym razie wyjście byłoby błędne
Mój kod:
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)
Chcę, aby kod był bardziej ogólny, więc będzie działał z nieznaną listą. Jakieś pomysły?
jak sortować listę przed zastosowaniem algorytmu –