@dintear_koden

Не срабатывает изменение третьего элемента в списке?

Делал решение для такой задачки:
Пользователь вводит целые числа и нужно создать словарь, у которого ключами будут только четные числа, а значениями – квадраты этих чисел.

И сделал это:
# digits = input("Вводите целые числа через пробел: ")
digits = "2 4 5 8 6"
digits_list = digits.split(" ")

for i in range(len(digits_list) - 1):
	if int(digits_list[i]) % 2 == 0:
		digits_list[i] = [int(digits_list[i]), int(digits_list[i]) ** 2]
		continue
	else:
		del digits_list[i]

print(digits_list)

Но именно третий элемент в списке не изменяется как все остальные. Пытался найти что не так, но не смог. Подскажите, кто знает.
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
@twistfire92
уберите блок else.
Вы удаляете элемент из списка, в связи с чем индексы смещаются.
Если добавите в исходные данные еще одно нечетное число, вообще будет ошибка, потому что код неправильный.
И словарь - это не список внутри списка.
Почитайте что такое словарь, заведите для него отдельную переменную.

Эта задача решается буквально в одну строку, если не считать оператора ввода
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы