python - 如何成对检查列表中的项目

标签 python list turtle-graphics

我正在使用 Turtle 随机路径生成器开发 python。我让 turtle 在一个平面上工作,从原点开始,以 10px 为单位向北、南、东或西移动,直到到达设定的边界。我不希望它在同一坐标上运行两次,所以我运行它,将过去的坐标添加到列表中,它会像这样增长: [0, 0] 然后 [0, 0, 10, 0] 然后 [0, 0, 10, 0, 10, -10] 等。我的问题是如何成对比较列表中的项目,例如 (0, 0) (10, 0) (10, -10) 等,因为我当前将 xy 保持在两个单独的方法中列表阻止它在整个轴上进行。这是我的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/

相关文章:

python - 如何从 numpy 列表中剪切到最接近的值?

html - 继续添加 <li> 到 <ul> 直到达到高度

python - 用 turtle 画三角形

random - 如何将 turtle move 到最高的随机邻居补丁

python - MySQL在同一张表上加入两次给出了一半的结果

python - 需要 NetworkX 帮助

list - 我如何用 Eager 语言制作一个懒惰的列表?

Python:为了测试目的而阻止网络连接?

c# - C#获取List中的前几个元素