我的循环遇到了麻烦。我得到一个400超出范围的错误。我申请的是不允许的,或者我的问题是什么?它对我来说看起来像法律语法?
curses
答案 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)