URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10457
[ Назад ]

Исходное сообщение
"Ошибка понимания списка Python: неожиданный вывод"

Отправлено Jeevan11 , 01-Сен-23 13:47 
Я столкнулся с неожиданным результатом при использовании понимания списка в 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) отсутствуют.

Может ли кто-нибудь помочь мне понять, почему это происходит и как исправить мой код понимания списка, чтобы получить желаемый результат? Есть ли что-то, что я упускаю из виду в своем подходе? Ваши идеи будут очень признательны. Спасибо!


Содержание

Сообщения в этом обсуждении
"Ошибка понимания списка Python: неожиданный вывод"
Отправлено BulgakowI , 01-Сен-23 17:42 
>[оверквотинг удален]
> пытаюсь создать список квадратов значений четных чисел в заданном диапазоне, но
> результат не тот, который я ожидал. Вот код, который я использую:
>
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]


"Ошибка понимания списка Python: неожиданный вывод"
Отправлено DmitryX , 05-Сен-23 20:14 
Ваш код абсолютно верен. Проверил его у себя на компьютере и на сайте питонтьютора. Вывод - [0, 4, 16, 36, 64]



"Ошибка понимания списка Python: неожиданный вывод"
Отправлено evgeny , 08-Сен-23 13:19 
>[оверквотинг удален]
> squared_values = [x**2 for x in even_numbers]
> print(squared_values)
>

> Я ожидал, что результат будет [0, 4, 16, 36, 64], но вместо
> этого я получаю [0, 4, 16]. Кажется, что последнее четное число
> (8) и соответствующее ему квадратное значение (64) отсутствуют.
> Может ли кто-нибудь помочь мне понять, почему это происходит и как исправить
> мой код понимания списка, чтобы получить желаемый результат? Есть ли что-то,
> что я упускаю из виду в своем подходе? Ваши идеи будут
> очень признательны. Спасибо!

Хм...
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]
>>>


"Ошибка понимания списка Python: неожиданный вывод"
Отправлено Human , 26-Сен-24 05:28 
Ваш код верен.
Попробуйте воспользоваться другой версией python3