【发布时间】:2021-06-13 06:38:06
【问题描述】:
我制作了一个称为乘法的函数,用于将列表中的后续元素相乘。
def multiplication(numbers):
new_list=[]
for x in range(len(numbers)-1):
new_list.append(numbers[x+1]*numbers[x])
return new_list
执行以下操作。
multiplication([1,3,5,7,8])
[3, 15, 35, 56]
multiplication([3,15,35,56])
[45, 525, 1960]
我一直在尝试使用 while 循环创建一个新函数,以将先前函数的输出传递回自身,直到输出单个值。例如,上面的列表应该成为 [24310125000] 的单个值。我试过使用下面的代码。
def final_multiplication(numbers):
new_list=[]
while len(new_list)!=1:
for x in range(len(numbers)-1):
new_list.append(numbers[x+1]*numbers[x])
if len(new_list)==1:
return new_list
但是,我的尝试导致崩溃。有谁知道使用 while 循环来做到这一点的任何方法?
【问题讨论】:
-
你总是添加到
new_list,所以它的长度永远不会是1。我会递归地做。 -
你能解释一下预期的输出是
[24310125000]吗?我不确定你到底想做什么。
标签: python python-3.x while-loop