src = max(gameinfo.my_planets.values(), key=lambda p: p.num_ships)
dest = min(gameinfo.not_my_planets.values(), key=lambda p:p.num_ships)
if len(gameinfo.my_fleets) > 0:
for fleet in gameinfo.my_fleets.values():
print fleet.dest.id
self.dests.append(fleet.dest)
for i, value in self.dests:
print value.id
while value == dest:
self.dests[i] = choice(gameinfo.enemy_planets.values())
for i, fleet in gameinfo.my_fleets.values():
gamefleet.fleet_order(fleet, self.dests[i], int(fleet.num_ships))
# clear for now
self.dests = []
return
问题是最后两个for循环不确定要做什么。。。获取“not iterable”错误。逻辑是正确的,但只是不确定我是否有一个关键字错误或什么。整晚都在做这个!你知道吗
如果不知道
self.dests
和gameinfo.my_fleets.values()
中的值是什么,很难说是肯定的,但我猜应该是:你真的想要:
对于另一个for循环也是如此。你知道吗
为了实现这一点,
self.dests
和gameinfo.my_fleets.values()
需要是或者需要返回被称为python iterables的对象,比如字符串和列表,您可以对它们进行迭代(在本例中可能是大小为2的元组列表,请查看您的代码)。不幸的是,这两个不是-或者不是返回-iterable对象。因此,您必须研究它们为什么不存在,或者您是否应该对它们进行迭代。你知道吗下面是一个堆栈溢出问题,讨论如何识别程序中的变量是否是iterable对象。在这里应该会有所帮助:
相关问题 更多 >
编程相关推荐