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

如何从矩阵中提取值及其对应的索引?附实现示例

实现矩阵元素与1-based索引的映射

当然可以实现,下面是两种基于Python的简洁方案,完全适配你的需求:

方法一:嵌套循环 + 字典赋值

S = [[1, 2], [4, 8]]
result = {}
# 遍历行,用start=1直接得到1-based行号
for row_idx, row in enumerate(S, start=1):
    # 遍历每行元素,同理得到1-based列号
    for col_idx, num in enumerate(row, start=1):
        result[num] = (row_idx, col_idx)
print(result)
# 输出: {1: (1, 1), 2: (1, 2), 4: (2, 1), 8: (2, 2)}

方法二:字典推导式(更简洁)

S = [[1, 2], [4, 8]]
result = {num: (row_idx, col_idx) 
          for row_idx, row in enumerate(S, start=1) 
          for col_idx, num in enumerate(row, start=1)}
print(result)
# 输出与上述一致

注意事项

  • 如果矩阵存在重复元素,后面的元素会覆盖前面的索引映射——因为字典的键必须唯一。若要保留所有重复元素的索引,可以把值设为列表,比如用result.setdefault(num, []).append((row_idx, col_idx))替代直接赋值。
  • 上述代码默认采用1-based索引(从1开始计数),若需要0-based索引,去掉enumerate参数里的start=1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:35:31