You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python藏宝图代码中map列表访问为何horizontal索引为第二级?

索引顺序问题解答

核心原因:嵌套列表的存储结构是行优先

map是按行组织的嵌套列表,结构如下:

map = [
  row1, # 垂直位置第1行
  row2, # 垂直位置第2行
  row3  # 垂直位置第3行
]
  • 第一级索引map[行索引]的作用是选中对应行,匹配垂直方向的位置,所以必须放在索引的第一位
  • 第二级索引map[行索引][列索引]的作用是在已选中的行里定位对应列,匹配水平方向的位置,所以放在索引的第二位

为什么索引顺序和输入顺序相反

这是题目预先约定的交互规则,和Python语法无关:
题目要求用户输入两位数字,第一位是水平列号,第二位是垂直行号,比如输入23就代表要标记「第2列、第3行」的位置。因此你从输入position中拿到的第0位是列值(horizontal),第1位是行值(vertical)。

实际运行示例(输入为23):

  1. 解析输入得到horizontal = 2,vertical = 3
  2. 计算行索引:vertical - 1 = 2,对应map[2]也就是第三行row3
  3. 计算列索引:horizontal -1 = 1,对应row3[1]也就是第三行的第二列
  4. 赋值后正好匹配用户输入的目标位置,符合交互预期

如果要让输入顺序和索引顺序一致,只需要修改输入提示,让用户先输入行号再输入列号即可,嵌套列表的索引顺序是由存储结构决定的,和输入规则没有强制绑定关系。


内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:06:05