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

从Python转Rust:如何用索引Vec访问目标Vec的指定元素

Rust中通过索引向量访问目标向量元素的简洁实现

你可以利用Rust的迭代器实现类似NumPy的索引访问逻辑,代码简洁且符合Rust风格:

fn main() {
    let a: Vec<i32> = vec![1,2,3,4,5,6,7];
    let indices = vec![1,0,2,1];
    let b: Vec<_> = indices.iter().map(|&idx| a[idx]).collect();
    println!("{:?}", b);
}

运行结果为 [2, 1, 3, 2],和你Python代码的输出一致。

代码说明

  • indices.iter() 遍历索引向量中的每一个元素
  • map(|&idx| a[idx]) 将每个索引映射为目标向量a对应位置的元素
  • collect() 把映射后的迭代器结果收集成新的Vec

这种写法既避免了手动逐个写索引的繁琐,也比显式for循环更简洁,同时保留了Rust的安全性(索引越界时会触发运行时panic,和直接使用a[idx]的行为一致)。

内容的提问来源于stack exchange,提问作者Kazai Aban Torin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:32:34