В принципе, у меня есть список, который содержит все возможные значения второго списка. Например:
Первый список (возможные значения):
list1 = ['cat','dog','pig']
Второй список:
list2 = ['dog','cat','cat','cat','dog','pig','cat','pig']
Я хочу сравнить эти списки и заменить все строки во втором списке на индекс первого.
Так что ожидайте что-то вроде этого:
list2 = [1,0,0,0,1,2,0,2]
Я пробовал это несколькими разными способами. Первый, хотя и работал, не был разумным методом. Поскольку, если бы первый список имел огромное разнообразие возможных значений, эта стратегия не была бы функциональной для кода.
Это было первое решение:
list3 = []
for i in list2:
if i == 'cat':
i = 0
list3.append(i)
elif i == 'dog':
i = 1
list3.append(i)
elif i == 'pig':
i = 2
list3.append(i)
list2 = list3
print(list2)
выход
[1, 0, 0, 0, 1, 2, 0, 2]
Но я хочу решение, которое работает с огромным количеством возможных значений без необходимости кодировать каждый тест.
Итак, я попробовал это (и другие неудачные попытки), но это не работает
for i in list2:
for j in list1:
if i == j:
i = list1.index(j)