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
})