尝试按顺序划分 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
'''
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