首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较火星漫游者模拟中的列表

比较火星漫游者模拟中的列表
EN

Stack Overflow用户
提问于 2021-02-11 08:24:13
回答 1查看 46关注 0票数 0

我正在写一个模拟基本火星漫游车的程序。矩阵是"mars“,其中前两个数字是x和y坐标,第三个是安全分数,它决定给定的坐标是否可导航(0-不好,4-好)。“月球车”只能直接向右或向下行驶(开始-0,0和结束-3,3)。我的程序能够告诉我什么坐标是安全的,但我正在努力寻找一种方法来比较它们,以找到一条安全的路径。我需要找到一种方法来比较显示的输出,以便x或y坐标只更改一个(向右或向下)来确定路径。

代码语言:javascript
运行
复制
# This is mars
matrix = [[0, 0, 1], [0, 1, 4], [0, 2, 1], [0, 3, 0],
          [1, 0, 1], [1, 1, 1], [1, 2, 0], [1, 3, 1],
          [2, 0, 0], [2, 1, 1], [2, 2, 1], [2, 3, 2],
          [3, 0, 0], [3, 1, 0], [3, 2, 1], [3, 3, 1]]

# This decides if a given coordinate is safe
def is_safe(sublist):
    if sublist[2::3] == [0]:
        return False
    else:
        return True

# As of now this just stores safe coordinates in a list
def find_paths():
    for sublist in matrix:
        if is_safe(sublist):
            safepath.append(sublist)

safepath = []
find_paths()
print(safepath)

输出:

代码语言:javascript
运行
复制
[[0, 0, 1], [0, 1, 4], [0, 2, 1], [1, 0, 1], [1, 1, 1], [1, 3, 1], [2, 1, 1],
 [2, 2, 1], [2, 3, 2], [3, 2, 1], [3, 3, 1]]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-11 09:00:04

以Bamar的评论为例:

代码语言:javascript
运行
复制
m = {}
for x,y,z in matrix:
  entry = m.get(x, {})
  entry[y] = z
  m[x] = entry

m[0][0] # outputs 1; i.e. m now contains matrix in normalized form

现在,您的问题是在传统的2d矩阵中移动,而不是以一种奇怪的方式解析列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66147100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档