首页 > 解决方案 > 使用'for'循环迭代给定函数的列表

问题描述

是否可以通过自动更新结果来迭代给定函数?

假设我们有以下函数和 for 循环:

def something(m, p, f):
    alpha = (p+f)*m 
    return alpha

mlist= [100, 1000]
for m in mlist:
    alpha = something(m, 20, 1)

当我运行它时,它总是取列表中的最后一个值并计算 alpha。我想要做的是,为 mlist 中的每个 m 值计算 alpha。

我可以手动更新 alpha :

for m in mlist: 
    m = mlist[0]
    alpha1= something(m, 20, 1)
    m = mlist[1]
    alpha2= something(m, 20, 1)

还有其他方法可以自动更新 alpha 吗?

谢谢

标签: python-3.xfunctionfor-loop

解决方案


实际上,您alpha在每次迭代期间都将被覆盖,最后您将得到使用 last 计算的值m。如果您希望保留或使用您的所有值,则alpha必须将它们存储在其他位置,例如另一个列表,或者将其用于循环内的某些计算。

mlist= [100, 1000]
alphas = []
for m in mlist:
    alpha = something(m, 20, 1)
    #alphas.append(alpha) - option 1
    #do something with alpha here - option 2

推荐阅读