IndexError: list index out of range при попытке добавить объект в словарь (Python)

Всем привет. Имеется такой код:

def func():
    d = []
    animals = ['Кошка', 'Собака', 'Мышь', 'Попугай' 'Бобер', 'Ламантин', 'Морж', 'Кит']
    group = ['Домашние', 'Домашние', 'Домашние', 'Домашние', 'Дикие', 'Дикие', 'Дикие', 'Дикие']
    total_amount = ['2', '1', '10']

    for i in range(len(group)):
        if group[i] == 'Домашние':
            d.append({"animal": animals[i], "amount": total_amount[i]})
    return d

print(func())

Который на выходе выдает ошибку:

IndexError: list index out of range

Подскажите, пожалуйста, как поправить эту ошибку?

upd: в списках animals и group одинаковое количество элементов. Предполагаю, что для каждого ключа amount, где нет индекса (total_amount[3]), нужно проставлять значение 0. Как это можно сделать?


Ответы (2 шт):

Автор решения: Neuro

В group 7 элементов, в то время как в total_amount 3, значит при i>=3 будет out of range, в этом ошибка, на до повлиять на размер total amount или If или чем то еще

→ Ссылка
Автор решения: CrazyElf

Можете использовать тернарный оператор для проверки, не вышел ли индекс i за границы списка total_amount, и если вышел, можете подставлять 0 вместо элемента списка:

d.append({
    "animal": animals[i],
    "amount": total_amount[i] if i < len(total_amount) else 0
    })

→ Ссылка