قائمة الحد الأدنى في Python مع لا شيء؟
-
21-09-2019 - |
سؤال
هل هناك أي وظيفة ذكية مدمجة أو شيء سيعود 1
ل min()
مثال أدناه؟ (أراهن أن هناك سببًا قويًا لعدم إرجاع أي شيء ، لكن في حالتي الخاصة ، أحتاج إلى تجاهلها None
القيم سيئة حقا!)
>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>>
المحلول
None
يتم إرجاعها
>>> print min([None, 1,2])
None
>>> None < 1
True
إذا كنت تريد العودة 1
عليك تصفية None
بعيد:
>>> L = [None, 1, 2]
>>> min(x for x in L if x is not None)
1
نصائح أخرى
باستخدام تعبير المولد:
>>> 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
اجعل أي شيء لا حصر له ل min ():
def noneIsInfinite(value):
if value is None:
return float("inf")
else:
return value
>>> print min([1,2,None], key=noneIsInfinite)
1
ملاحظة: هذا النهج يعمل لبيثون 3 كذلك.
لا تنتمي إلى StackOverflow