Я хотел бы создать лямбду, которая выдает ValueError
, если ее входные данные являются непустым списком. Основываясь на предложенном ответе здесь , я реализовал его следующим образом:
f = lambda x: (_ for _ in ()).throw(ValueError()) if len(x) != 0 else []
(Обратите внимание, что возвращаемое значение []
, когда x
представляет собой пустой список, здесь не важно, Мне просто нужно было что-то поместить, чтобы получить полный оператор if
- else
.
Это работает, как задумано, но код выглядит немного крипт c. Есть ли лучший способ написать выше? Я думаю об использовании x
как-то в генераторе (_ for _ in ())
, но не могу однозначно понять, как это сделать, чтобы получить желаемый результат.