2010-02-19 13 views
16

min() aşağıdaki örnek için herhangi bir zeki yerleşik işlev veya 1 döndürecek bir şey var mı? (Bunun bir şeyi dönmemeyi için sağlam neden yoktur bahse ama benim özel durumda ben gerçekten kötü None değerleri göz ardı etmek gerek!)Hiçbiri ile Python'da minimum değeri listeleniyor mu?

>>> max([None, 1,2]) 
2 
>>> min([None, 1,2]) 
>>> 

cevap

33

None

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

Eğer

iade ediliyor

>>> L = [None, 1, 2] 
>>> min(x for x in L if x is not None) 
1 
+1

Not,' dakika ([Yok, 1, 2]) 'veren bir 'TypeError:' <'' int 've' NoneType 'örnekleri arasında desteklenmez. –

3

bir jeneratör ifade kullanarak: Eğer uzağa None filtrelemek zorunda 1 dönmek istiyorum

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

sonunda, filtreyi kullanabilir: None` sadece Python 3 Python 2'de döndürülür `bu

>>> min(filter(lambda x: x is not None, [None,1,2])) 
1 
+1

'Hiçbiri' – SilentGhost

+0

ile ilgili olduğunda eşitliği karşılaştırmak daha doğru, düzeltilmişsiniz. –

+2

Sözdizimi python 3'ün hiçbiri yoktur. Python 2'de çalışır. '' ',' '' '' '' ile '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile kullanmak için '=' '(ya da'! = ') Kullanılmasını tercih edilir. 'Filtreli' satırı ** yanlış **, listeye 0 koymayı deneyin ve bunun da filtreleneceğini göreceksiniz, istediğinizi değil. – nosklo

İlgili konular