Я изучаю основы программирования python и борюсь с тем, что может показаться мне простым, но запутанным. У меня есть список my_list, и я хотел бы вычесть 3, только из чисел больше 9
my_list = [1, 2, 30, 4, 5, 60, 7, 80]
, когда я пробую это, я получаю синтаксическую ошибку:
print([x - 3 if x > 9 for x in my_list])
но добавление бесполезного условного оператора else в конце условия if заставляет его работать:
print([x - 3 if x > 9 else x + 0 for x in my_list])
Если бы я сделал это более длинным способом:
for j in range(len(my_list)):
if my_list[j] > 9:
my_list[j] = my_list[j] - 3
print(my_list)
Я бы не требуется условие else, чтобы эта работа работала. Это подводит меня к вопросам; Требуется ли предложение else для использования условных выражений с пониманием списка? Если нет, как мне заставить его работать без использования else?