2017-06-20 74 views
-1

我應該將列表n中的每個元素乘以2,但由於某種原因它會一直返回[6,5,7]。由於某種原因,它只乘以第一個元素,但我希望它乘以所有元素,然後返回列表。列表中的乘法元素

n = [3, 5, 7] 

def double_list(x): 
    for i in range(0,len(x)): 
     x[i] = x[i] * 2 
     return x 

print(double_list(n)) 
+1

'return'停止該功能。在函數內部用'print'語句調試(帶和不帶'return'),你會看到 – Mel

+0

@Mel返回[6,5,7],[6,10,7],[6,10,14 ],但我只想要最後一個結果的新列表。不是一個接一個......這讓我感到困惑 – Anon

回答

1

問題是,您在第一次迭代後返回x。

您應該在循環結束後返回x,否則您將獲得請求的結果。

n = [3, 5, 7] 

def double_list(x): 
    for i in range(0,len(x)): 
     x[i] = x[i] * 2 
    return x 

print (double_list(n)) 

有關回報statemtent的更多信息,你可以閱讀here

0

你從內環路返回。當第一個元素更新時,立即返回而不更新其他元素。 你應該返回for循環之外。

def double_list(x): 
    for i in range(len(x)): 
     x[i]*=2 
    return x 

n=[24,20,48] 
double_list(n) 

它適用於我。嘗試在你的 請注意,你的原始列表n的變化。