Я столкнулся с неожиданным результатом при использовании понимания списка в Python. Я пытаюсь создать список квадратов значений четных чисел в заданном диапазоне, но результат не тот, который я ожидал. Вот код, который я использую:
even_numbers = [x for x in range(10) if x % 2 == 0]
squared_values = [x**2 for x in even_numbers]print(squared_values)
Я ожидал, что результат будет [0, 4, 16, 36, 64], но вместо этого я получаю [0, 4, 16]. Кажется, что последнее четное число (8) и соответствующее ему квадратное значение (64) отсутствуют.
Может ли кто-нибудь помочь мне понять, почему это происходит и как исправить мой код понимания списка, чтобы получить желаемый результат? Есть ли что-то, что я упускаю из виду в своем подходе? Ваши идеи будут очень признательны. Спасибо!
>[оверквотинг удален]
> пытаюсь создать список квадратов значений четных чисел в заданном диапазоне, но
> результат не тот, который я ожидал. Вот код, который я использую:
>even_numbers = [x for x in range(10) if x % 2 ==
> 0]
> squared_values = [x**2 for x in even_numbers]
> print(squared_values)
>
> Я ожидал, что результат будет [0, 4, 16, 36, 64], но вместо
> этого я получаю [0, 4, 16]. Кажется, что последнее четное число
> (8) и соответствующее ему квадратное значение (64) отсутствуют.??
https://www.online-python.com/NLE9D13Uy5
[0, 4, 16, 36, 64]
Ваш код абсолютно верен. Проверил его у себя на компьютере и на сайте питонтьютора. Вывод - [0, 4, 16, 36, 64]
>[оверквотинг удален]
> squared_values = [x**2 for x in even_numbers]
> print(squared_values)
>
Хм...
Type "help", "copyright", "credits" or "license" for more information.
>>> even_numbers = [x for x in range(10) if x % 2 == 0]
>>> even_numbers
[0, 2, 4, 6, 8]
>>> squared_values = [x**2 for x in even_numbers]
>>> print(squared_values)
[0, 4, 16, 36, 64]
>>>
Ваш код верен.
Попробуйте воспользоваться другой версией python3