为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据索引列表从二维列表中的每个一维列表中选择一个元素?

如何根据索引列表从二维列表中的每个一维列表中选择一个元素?

宝慕林4294392 2023-06-20 16:39:15
我们索引列表的第 i 个元素表示我们想知道的 2D 列表中第 i 个 1D 列表的索引。如果我们的二维列表和索引列表如下所示:a = [[1,7,3],[9,0,8]]list_ix = [1, 0]期望的结果是 [7,9]。目前我通过使用如下循环来做到这一点:res = []for i in range(len(list_ix)):    res.append(a[i][list_ix[i]])但这在实际代码中看起来很乱。有一个更好的方法吗?我将不胜感激任何建议。谢谢你!
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

我认为这可以通过这种方式完成:

res = [a[idx][element] for idx, element in enumerate(list_ix)]
查看完整回答
反对 回复 2023-06-20
?
慕后森

TA贡献1802条经验 获得超5个赞

您可以使用zip()功能:


a = [[1,7,3],[9,0,8]]    

list_ix = [1, 0]


out = [l[i] for i, l in zip(list_ix, a)]

print(out)

印刷:


[7, 9]


查看完整回答
反对 回复 2023-06-20
?
桃花长相依

TA贡献1860条经验 获得超8个赞

使用enumeratewhich 可以让您从列表中获取值并跟踪您的当前位置。


a = [[1,7,3],[9,0,8]]


list_ix = [1, 0]


res = []

for i, outer_list_index in enumerate(list_ix):

    res.append(a[i][outer_list_index])


print(res)


查看完整回答
反对 回复 2023-06-20
  • 3 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号