Kan*_*now 3 vector linear-algebra rust
有没有什么聪明的方法来获取n * i向量的每个元素?我有这个向量:
let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
Run Code Online (Sandbox Code Playgroud)
我想要这个向量的每三个值,所以输出将是:
let result = vec![3, 6, 9];
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过 for 循环来实现这一点:
let mut result: Vec<i32> = vec![];
let offset = 3;
for (index, value) in example.iter().enumerate() {
if (index + 1) % offset == 0 {
result.push(value.clone());
}
}
Run Code Online (Sandbox Code Playgroud)
要迭代每第n个元素,请使用.step_by(). .skip()但是,如果从初始值开始使用它,您还需要链接。游乐场:
let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
let n = 3;
let result: Vec<_> = example.iter().skip(n-1).step_by(n).copied().collect();
println!("{:?}", result);
Run Code Online (Sandbox Code Playgroud)
let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
let n = 3;
let result: Vec<_> = example.iter().skip(n-1).step_by(n).copied().collect();
println!("{:?}", result);
Run Code Online (Sandbox Code Playgroud)
也可以看看:
| 归档时间: |
|
| 查看次数: |
2631 次 |
| 最近记录: |