尝试按顺序划分 python 列表中的每个数字,如何?

Trying to sequentially divide each number in a list in python, how though?

'''

numlist = [ 81, 9, 3]
#List methods
for num in numlist:
    numlist[numlist.index(num)] = int(num)
#list comprehension
 numlist = [int(num) for num in numlist]

i=0

for i in numlist:
    a = i
    b = i + 1
    quotient = a / b
print(numlist[-1])

'''

我想做的是得到 81 / 9 然后商除以 3。整个操作得到 3,我的目的是得到 1 的结果。

任何建议都很好。

这道基础题的用意是用被除数除以除数给我一个商。然后商除以下一个除数,商最终作为被除数。

我试过:

numlist = input("Enter space-separated numbers (2 min) ").split()
#List methods
for num in numlist:
    numlist[numlist.index(num)] = int(num)
#list comprehension
numlist = [int(num) for num in numlist]

from functools import reduce
reduce(lambda x,y:x/y, numlist)
print(numlist[-1])

但结果是 3

如果要按顺序划分包含在 Python 中的可迭代对象中的整数,functools.reduce 可以非常有效地执行此操作:

>>> from functools import reduce
>>> reduce(lambda x,y: x/y, [81,9,3])
3.0
>>> 

reduce 函数以函数和可迭代对象作为参数。它将(在本例中)81 和 9 作为 x,y 输入提供给 lambda 函数。然后它获取该操作的结果,以及可迭代对象中的下一个值(在本例中为 3),并将 those 提供给 lambda 函数的 x,y 输入。结果与 (81 / 9) / 3

相同

检查你的数学。正确答案只有 3 个。此外,无论您发布什么代码,甚至都没有尝试执行顺序除法,您最终只会返回列表的最后一个元素,在本例中最终为 3。
完成顺序除法的简单方法是:

numlist = [ 81, 9, 3]

res = numlist[0]
for num in numlist[1:]:
    res = res/num

print(res)

输出:

3.0

numlist = [int(num) for num in numlist] 应该替换为 numlist = list(map(int,numlist)) 因为你不应该弄乱你正在迭代的可迭代对象。

其次,你最后一个做除法的for循环是错误的。试试这个。

nextNum = numlist[1]
for i in range(len(newList)-1):
    nextNum = newList[i] / nextNum

一起。

numlist = [ 81, 9, 3]
newList = [int(num) for num in numlist]
nextNum = numlist[1]
for i in range(len(newList)-1):
    nextNum = newList[i] / nextNum
print(nextNum)

出来

1