rust - 如何在 Rust 中同时迭代三个可迭代对象

标签 rust

我试图同时迭代三个列表,并在循环的每次迭代中引用它们(如果有意义的话)...但是我找不到简单的方法来执行此操作...

例如

let list1 = [1,2,3,4];
let list2 = [2,4,3,1];
let list3 = [6,53,7,3];

for (x, y, z) in list1, list2, list3 {
   //do stuff
}

其中 x 指列表 1 中的项目,y 指列表 2 等中的项目。

最佳答案

如果您使用 Rust 1.59 或更高版本,以下内容也适用(无需依赖 itertools):

use std::iter::zip;

fn main() {
  let list1 = [1,2,3,4];
  let list2 = [2,4,3,1];
  let list3 = [6,53,7,3];

  for (x, (y, z)) in zip(list1, zip(list2, list3)) {
    println!("{x}, {y}, {z}");
  }
}

关于rust - 如何在 Rust 中同时迭代三个可迭代对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71493684/

相关文章:

struct - 结构中枚举的生命周期参数

struct - 我将如何创建一个函数局部静态 `HashSet<char>` 并初始化一次?

rust - 如何在不使用 Tokio 同时运行相同功能的情况下以重复间隔同时运行一组功能?

url - Rust 标准库中是否具有从 URL 下载文件的功能

rest - rust 诗-openapi : endpoints in multiple files

rust - 尝试实现 core::fmt::Show

list - 向前和向后迭代

iterator - 如何为简单结构实现 Iterator 和 IntoIterator?

rust - 将 Arc<Future> 移动到线程池中

serialization - 如何在二进制编码文件中的不同记录之间添加分隔符?