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

如何利用列表推导式从嵌套列表中获取值为1的坐标元组集合

用列表推导式提取嵌套列表中值为1的元素坐标集合

给定如下嵌套列表:

matrix = [[0, 0, 1], 
          [1, 0, 0], 
          [0, 1, 0]]

需要返回所有值为1的元素的(行,列)坐标元组组成的集合,预期结果为:

{(0, 2), (1, 0), (2, 1)}

可以结合enumerate和集合推导式(本质是列表推导式的集合版本)实现简洁的代码:

matrix = [[0, 0, 1], 
          [1, 0, 0], 
          [0, 1, 0]]

# 用集合推导式直接生成目标集合
result = {(row_idx, col_idx) for row_idx, row in enumerate(matrix) 
          for col_idx, val in enumerate(row) if val == 1}

print(result)

代码说明:

  • enumerate(matrix)遍历每一行,同时获取行索引row_idx和当前行的元素列表row
  • 内层enumerate(row)遍历当前行的每个元素,获取列索引col_idx和元素值val
  • 条件if val == 1筛选出值为1的元素,将对应的坐标元组(row_idx, col_idx)纳入集合
  • 直接使用大括号{}生成集合,比先创建列表再通过set()转换更高效

⚠️ 注意:避免使用list作为变量名,这会覆盖Python内置的list类型,引发潜在问题,这里改用matrix作为变量名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:47:13