Извините, если так просто; как я искал в другом месте, но никто не указал на эту конкретную проблему. Я хотел бы изучить python таким образом, чтобы сделать мой код компактным! Поэтому для этого я пытаюсь использовать однострочные (то есть короткие) циклы вместо многострочных, в частности, для циклов. Проблема возникает, когда я пытаюсь использовать однострочные, если и еще внутри однострочных циклов. Это просто не похоже на работу. Рассмотрим, например, следующее:
numbers = ... # an arbitrary array of integer numbers
over_30 = [number if number > 30 for number in numbers]
Это проблематично c, поскольку one-line if
действительно нужно else
после него. Хотя, когда я добавляю else
к приведенному выше сценарию (после if
): over_30 = [number if number > 30 else continue for number in numbers]
, это превращается в просто еще одну ошибку pythoni c.
Я знаю, что проблема на самом деле с одним -линии if и else, поскольку python необходимо определить значение, которое должно быть назначено левому оператору. Но есть ли обходной путь для конкретного c варианта использования этой схемы, как указано выше?