【发布时间】:2014-06-25 13:03:19
【问题描述】:
您好,我如何在每次 cs 循环时使用列表 'trav_time' 中的每个元素两次进行评估路由函数中的两个不同计算。它适用于 fit,但会为 fit1 提供以下错误。谢谢
trav_time = iter([3,6,7,9,11])
value_of_time = 15
trnsfr_pen = 0.21
def evaluate_routes():
fitness = []
fitness1 = []
for cs in range(5):
fit = (trav_time.next() * (5 / trnsfr_pen) * value_of_time)
fitness.append(fit)
fit1 = trav_time.next() * 3
fitness1.append(fit1)
print "fitness: ",fitness
print
print "fitness: ",fitness1
return fitness
evaluate_routes()
Traceback (most recent call last):
File "C:/Users/AMAMIFE/Desktop/obi/hey.py", line 251, in <module>
evaluate_routes()
File "C:/Users/AMAMIFE/Desktop/obi/hey.py", line 240, in evaluate_routes
fit1 = trav_time.next() * 3
StopIteration
【问题讨论】:
-
请注意,
trav_time是一个列表,但您的代码和错误消息表明它是一个生成器。 -
@DominicKexel:你在朋友之间试图解决的实际问题有什么谎言?
-
@DominicKexel 我认为你的意思是迭代器。
-
@jpmc26 嗯,是的,我愿意 :-)
-
@Dominic kexel,我刚刚编辑过 trav_time 是列表的迭代器 trav_time = iter([3,6,7,9,11])
标签: python python-2.7