This question already has answers here:
Looping over a list in Python
(3个答案)
三年前关闭。
我对编程很陌生,一直在尝试使用python进行研究计算。我需要写一个这样的程序:
如果chelDays=[0,1,5,7]
对于从1到100的每一次t,如果t>t chelDays,我需要列表中每个成员的t-chelday。例如,我会得到以下结果:see image
我试过的是:
chelDays = [0, 1, 5, 7]
while t <100:
    if t > tj:
        print (t, t-tj)
    else:
        print (t, " ")
    t +=1

编辑:
终于找到了我的解决方案:
τ=(0,1,5,7)
定义tMinusTau(t,tj):
如果t>tj:
返回t-tj
其他:
返回“
对于范围(1100)内的t:
打印(t,tMinusTau(t,Tau[0]),tMinusTau(t,Tau1),tMinusTau(t,Tau[2]),tMinusTau(t,Tau[3]))

最佳答案

循环是遍历集合中的项的pythonic方法。您可以使用for对一系列数字获得相同的效果,例如,range是数字1-99(因为停止编号是非包含的)
因此,如果您想遍历t=1到t=100,然后检查chelDays中每个range(1,100)间隔的每个项,您可以执行以下操作:

for t in range(1,101):
    for tj in chelDays:
        if t > tj:
            #dostuff
        else:
            #dostuff

编辑:事后看来,还不清楚你是否想检查每一个在切尔代斯项目。你可能指的是所有日子的总价值。如果是这种情况,您可以通过t对值进行求和,例如sum(chelDays)或者如果您想要列表中的项目数,您可以执行sum([1,2,3]) == 6操作,例如len(chelDays)
最后,你可以为自己和其他阅读你的代码的人做一件很好的事情,试着让你的变量名准确地描述它们是什么。像len([504,123,234]) == 3xy等变量名通常不合适。当然,也有一些上下文,比如数学公式,其中varxy等非常好。

09-11 12:42