У меня есть простой код. Существует словарь с 1500 элементами. Я хочу, чтобы удалить элементы, значения которых меньше 50.0:Удаление ключей и значений из словаря (Python 2.7)
for i in range (0, 1500):
if my_dict[i] < 50.0:
del my_dict[i]
Я получаю сообщение об ошибке:
KeyError Traceback (most recent call last)
<ipython-input-16-d483c8b3ffa9> in <module>()
1 for i in range (0, 1500):
----> 2 if my_dict[i] < 50.0:
3 del my_dict[i]
4
KeyError: 0
Что я сделал не так?
В словаре нет такого ключа, как '0'. Вы, возможно, удалили его раньше или никогда не добавляли, мы не можем сказать, не видя, как вы построили 'my_dict'. –
@ d6bels Непонятно, что OP хочет удалить все ключи со значениями <50, у них может быть веская причина итерации по этому диапазону. –
@LevLevitsky Я вижу, что вы имеете в виду, однако, «диктатор с 1500 элементами», «диапазон (0, 1500)», и фрагмент кода заставил меня думать, что это очевидно. – d6bels