Перечислить минимум в Python ни с Одним?

Есть ли любая умная встроенная функция или что-то, что возвратится 1 для min() пример ниже? (Я держал пари, что существует веская причина его для не возврата чего-либо, но в моем особом случае мне нужен он для игнорирования None значения действительно плохо!)

>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>> 
22
задан TrebledJ 30 June 2019 в 16:01
поделиться

2 ответа

Нет не возвращается

>>> print min([None, 1,2])
None
>>> None < 1
True

Если вы хотите вернуть 1 , вы должны отфильтровать Нет прочь:

>>> L = [None, 1, 2]
>>> min(x for x in L if x is not None)
1
42
ответ дан 29 November 2019 в 04:29
поделиться

с использованием выражения генератора:

>>> min(value for value in [None,1,2] if value is not None)
1

в конечном итоге вы можете использовать фильтр:

>>> min(filter(lambda x: x is not None, [None,1,2]))
1
3
ответ дан 29 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: