2017-08-14 51 views
2

是否有任何理由選擇另一種樣式? 實施例:Python:列表x的每個元素上使用的函數vs將列表x作爲arg的函數

def add_10(x): 
    return x + 10 

results = [add_10(i) for i in range(5)] 

VS

def add_10(list_): 
    return [e + 10 for e in list_] 

results = add_10(range(5)) 

這是一個基本的例子,但它說明的想法。我最近一直在使用前者,因爲我只是喜歡用簡單的輸入和輸出來編寫函數(不是那些列表很複雜),但我不知道除了個人風格之外是否還有其他真正的專業或專業知識。我在文檔和其他人的代碼中看到了更多後者,但我無法找到解決此特定想法的任何資源。

由於

回答

0

第一版更一般的,可以與處於任何類型的數據結構(或不在任何結構中,只需一個單一的變量)的值使用。舉例來說,如果你有一本字典,你可以用它來創建一個新的字典,所有的元素都增加了10或者你可以寫:

input_plus_10 = add_10(int(input("Please enter a number"))) 

第二個版本是更具體的,它只能是與列表一起使用。如果這是你需要的唯一的東西,那麼它很好(但你應該把它命名爲list_add_10)。

+0

所以它聽起來像是另一半的6個?儘管如此,關於第二版本的特殊性。 –

+0

這實際上是一個整體模塊化和你需要的問題。 – Barmar

相關問題