2014-12-29 20 views
1
n = [3, 5, 7] 

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

print double_list(n) 

由於某種原因,此python腳本只返回列表中的第一個項目,而不是所有三個運行時...可以有人請幫助我嗎?在python列表中返回多個數字

+2

提示:請在您的'return'說法。 – Gohn67

+0

提示:不要爲內置的已有內容創建自定義函數 – Jivan

+0

@Jivan內置函數將使用定標器將列表中的所有值相乘? – wwii

回答

-4
n = [3, 5, 7] 

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

print double_list(n) 

嘗試this.Returning列表,還要檢查我們如何用算術運算重新定義變量。

+0

我的粉絲善於向下投票=) – GLHF

3
  1. 更改return語句,以便它沒有縮進是for塊的一部分。

  2. 返回列表而不是列表中的項目。

    def double_list(x): 
        for i in range(0, len(x)): 
         x[i] = x[i] * 2 
    
        return x 
    
1
n = [3, 5, 7] 

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

print (double_list(n)) 

另一個簡短的方法。

0

添加到選項:

def double_list(x): 
    return map(lambda num: num*2, x) 

print double_list([2, 3, 4]) 
+1

這會更好,如果不包含在一個毫無意義的額外功能 – Anentropic

+0

在Python 3中可能有:>>> list(map((2).__ mul__,[2, 3,4]))' '[4,6,8]'不是你想要的 – jamylak