我意识到函数中的 return 中断,因此我需要找到一种替代方法来返回修改后的列表。
def multiply(lst):
new = ''
for i in range(len(lst)):
var = lst[i] * 3
new = new + str(var)
return new
list1 = [1,2,3]
received = multiply(list1)
print [received]
我正在尝试将所有元素乘以 3 并返回(我必须使用返回)。这只会带来返回
['369']
我要返回的列表是
[3,6,9]
请您参考如下方法:
试试这个:
def multiply(lst):
return [val*3 for val in lst]
list1 = [1,2,3]
received = multiply(list1)
print received
如果您想要就地编辑,您可以执行以下操作:
def multiply(lst):
for idx,val in enumerate(lst):
lst[idx] = val*3
return lst
您的代码中的问题是您正在合并字符串“3”、“6”和“9”并返回一个包含字符串(“369”)的变量,而不是将此字符串放入列表中。这就是为什么您使用 ['369'] 而不是 [3,6,9] 的原因。请在下面找到带有注释的代码:
def multiply(lst):
new = '' # new string
for i in range(len(lst)): # for index in range of list size
var = lst[i] * 3 # get value from list and mupltiply by 3 and then assign to varible
new = new + str(var) # append to string new string representation of value calculated in previous row
return new #return string
在任何情况下,通过使用变量打印都是调试代码的好方法 - 尽管如果您在代码中放置打印,您就会明白那里发生了什么
