我正在使用 Turtle 随机路径生成器开发 python。我让 turtle 在一个平面上工作,从原点开始,以 10px
为单位向北、南、东或西移动,直到到达设定的边界。我不希望它在同一坐标上运行两次,所以我运行它,将过去的坐标添加到列表中,它会像这样增长: [0, 0]
然后 [0, 0, 10, 0]
然后 [0, 0, 10, 0, 10, -10]
等。我的问题是如何成对比较列表中的项目,例如 (0, 0) (10, 0) (10, -10)
等,因为我当前将 x
和 y
保持在两个单独的方法中列表阻止它在整个轴上进行。这是我的code .
最佳答案
简短回答:
next_coordinate = [10, 10]
if next_coordinate not in [[visited[2*i], visited[2*i+1]] for i in range(len(visited) / 2)]:
# make step...
但是,我认为您可以以更好的方式存储访问过的点。例如,元组列表:
[(0, 0), (10, 0), (10, -10)]
或者二维矩阵。
矩阵使用O(n*n)
内存。它的查找速度很快,但需要更多内存。
列表使用的内存与访问的坐标对的数量成比例,如果您需要存储大量点,这可能会节省大量内存。
关于python - 如何成对检查列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118512/