Вы не можете; в общем, имя на LHS ни к чему не привязано, пока RHS не создаст значение. (Ошибка связана с тем, что вы пытаетесь повторно использовать имя, связанное с типом list
, в качестве имени экземпляра из list
. Не делать это.)
В Python 3.8 вы можете сделать следующее, хотя я не уверен, какая выгода будет, если не упростить редактирование части определения без переписывания всей вещи.
lst = [(y := 5), (z := y * 2), 25 - z]
Более простое определение, которое будет работать в любой версии Python, будет просто использовать временные переменные:
y = 5
z = y * 2
lst = [y, z, 25 - z]