У меня есть следующий список:
listofanimals = ['Dog', 'Cat', 'Frog', 'Tiger', 'Sheep', 'Lion']
Я бы хотел отсортировать этот список по словарю:
score_card = {0: 'Sheep', 1: 'Dog', 2: 'Cat', 3: 'Tiger', 4: 'Frog', 5: 'Lion'}
Где должен быть порядок окончательного списка От 0 до 5, то есть
numberorder = [0, 1, 2, 3, 4, 5]
Я хотел бы создать это внутри функции. Вот что у меня есть:
def sorter():
listofanimals = ['Dog', 'Cat', 'Frog', 'Tiger', 'Sheep', 'Lion']
score_card = {0: 'Sheep', 1: 'Dog', 2: 'Cat', 3: 'Tiger', 4: 'Frog', 5: 'Lion'}
numbers = [0, 1, 2, 3, 4, 5]
finallist = []
for i in listofanimals:
print(numbers[listofanimals.index(i)])
q.append(numbers[listofanimals.index(i)])
print(q)
q = sorted(q)
finallist = [score_card[j] for j in q]
return finallist
Я не мог понять, как преобразовать listofanimals в числа, поэтому я мог отсортировать числа и затем вернуться в словарь, чтобы получить значения, но я просто не могу получить это на работу. Любая помощь приветствуется.