首页 > 解决方案 > 遍历坐标列表?

问题描述

我有两个函数,第一个函数生成一个随机的坐标列表。第二个函数,我需要它遍历坐标列表并绘制每个坐标。当我执行我的代码时,我得到一个错误,不知道为什么。

这是我的代码:

import random
import turtle

def generate_map(x_range, y_range, locations):

  generated_map = []
  for x in range(locations):
    random_x_points = random.randint(-x_range,x_range)
    random_y_points = random.randint(-y_range,y_range)
    generated_map.append([random_x_points, random_y_points])
  return generated_map

copied_map = generate_map(300,300,10)
print("Map Points are:", copied_map)

def print_map(speed, color, thickness, selected_map):
  print("printing map")
  turtle.penup()
  turtle.setpos(selected_map[0][0])
  turtle.pendown()
  for x in range(len(selected_map)):
        turtle.speed(speed)
        turtle.pencolor(color)
        turtle.pensize(thickness)
        turtle.goto(selected_map[x])
  turtle.setpos(selected_map[0][0])

print_map(5,"green",5,copied_map)

我认为错误可能是因为:

turtle.goto(selected_map[x]) 

它说它是不可迭代的,但我之前在之前的练习中做过这个并且它工作得很好,所以我不知道它哪里出了问题以及如何解决它?这是访问列表中元素的方法,所以我不确定为什么它不起作用,除非我没有正确访问列表中的元素或者我应该使用嵌套列表?

标签: pythonlistrandom

解决方案


回答

import random
import turtle

def generate_map(x_range, y_range, locations):

  generated_map = []
  for x in range(locations):
    random_x_points = random.randint(-x_range,x_range)
    random_y_points = random.randint(-y_range,y_range)
    generated_map.append([random_x_points, random_y_points])
  return generated_map

copied_map = generate_map(300,300,10)
print("Map Points are:", copied_map)



def print_map(speed, color, thickness, selected_map):
  print("printing map")
  turtle.penup()
  turtle.setpos(selected_map[0])
  turtle.pendown()
  for x in range(len(selected_map)):
      for i in selected_map:
        turtle.speed(speed)
        turtle.pencolor(color)
        turtle.pensize(thickness)
        turtle.goto(selected_map[x])
  turtle.setpos(selected_map[0])

推荐阅读