2016-05-20 78 views
0

我得到函數,它正在搜索的東西,並可能不會返回任何東西。 我要追加到數組,但只有當它返回的東西Python3將數值附加到數組,但只有它不是無

def fu(): 
    if sometring: 
     return result 

a = [] 
a.append(fu()) 

現在如果這個函數不返回其追加「無」到數組[result1, None, result2,etc]價值,如何避免這種情況?

+2

'ret = fu()''如果ret不是None None:a.append(ret)'? – vaultah

+1

在Python中,每個函數都會返回一些東西。如果你不指定返回的內容,它將返回'None'。 –

回答

2

如果您沒有返回語句,函數會自動返回None。爲避免將None附加到列表中,請在追加之前檢查它。

result = f() 
if result: 
    a.append(result) 

或者使用filter到底過濾掉None

a = [1, 2, None, 3] 
a = filter(None, a) 

print(a) 
# Output 
[1, 2, 3] 
+1

雖然第二種情況是可怕的,如果你調用函數的次數很多,它應該很少返回值。 –

+1

有趣的是,我從來不知道'filter'的None操作,我一直認爲第一個參數必須是一個函數。 –