Python双循环

时间:2017-11-16 17:29:27

标签: python python-3.x numpy

我的循环遇到了麻烦。我得到一个400超出范围的错误。我申请的是不允许的,或者我的问题是什么?它对我来说看起来像法律语法?

curses

2 个答案:

答案 0 :(得分:5)

您将值与索引混淆。在Python中,for x in ...语法返回可迭代对象中的每个元素,索引。试试这个:

for t in survTime:
     for a in age:
        if t > 365 and a < 50:
        # and so on

请注意,您打算迭代每个数组的,但实际上您将每个项目用作索引,这是超出范围的 - 例如:survTime没有400个元素!为了完整起见:如果您确实需要索引,那么遍历名为lst的列表的方式将是:

for i in range(len(lst)):
    ele = lst[i] # do something with the element

答案 1 :(得分:2)

for in使您可以迭代项目,而不是索引。我猜你想要

for i in survTime:
    for j in age:
        # now i == survTime[0] and j == age[0]
        if i > 365 and j < 50:
            # more code

或者如果您想使用索引,请使用for i in range(len(survTime))
或者,如果您想同时使用两者,请使用for index, value in enumerate(survTime)