【发布时间】:2020-07-26 12:45:39
【问题描述】:
我是 Python 新手。我想写一个搜索算法,可以实现如下:给定一个点→搜索一个附近满足某个条件的点→用那个新点搜索下一个附近的新点→重复这个直到找不到附近的新点.这是我的脚本,new_point_near_this_point() 是一个自定义函数,它返回布尔值是否存在满足条件的附近点。 init_point 是起点。
lst = [init_point]
for i in lst[-1]:
if new_point_near_this_point(i):
lst.append(new_point)
else:
break
但是,这不起作用,因为它只会循环通过一个初始点。我想知道如何实现一个搜索算法,该算法可以遍历一个列表,其中列表的项目在循环中不断附加(每次迭代一次)?
【问题讨论】:
-
for循环不应该在迭代时修改列表,这非常令人困惑并且可能导致意外行为。需要更多关于init_point和new_point的确切含义的信息,以便建议替代方法 -
如果
new_point_near_this_point只返回一个布尔值,那么你怎么知道下一个点是什么? -
抱歉原来的混乱代码。我已将
lst.append(i)更改为lst.append(new_point)
标签: python list algorithm for-loop search