python - Modifying each element in a list in a function -


i new programmer learning python codeacademy , supposed create function double_list returns items in list n , multiplies each number 2. every time run code error: ' double_list([0, 1]) returned [0, 1] instead of [0, 2]'

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

your function can return once, need out of for loop. written, function return x after first iteration, none of remaining elements modified.

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

an alternative, way, use simple list comprehension, not modify original list , create new 1 can assign original variable if you'd like

def double_list(x):     return [i*2 in x]  >>> n = [3, 5, 7] >>> n = double_list(n) >>> n [6, 10, 14] 

if prefer modify actual list argument, can use change function to

def double_list(x):     index, value in enumerate(x):         x[index] = 2 * value  >>> n = [3, 5, 7] >>> double_list(n) >>> n [6, 10, 14] 

Comments