我想你可以用Itertools.tuple_windows來做這個。根據文檔,它“返回所有連續窗口上的迭代器,生成特定大小的元組(最多4個)”: use itertools::Itertools;use itertools::TupleWindows;use std::slice::Iter;let data = vec![0, 1, 2, 3, 4, 5];let it: TupleWindows<Iter<'_, i32>, (&i32, &i32)> = data.iter().tuple_windows();for elem in it { println!("{:?}", elem);} Output: (0, 1)(1, 2)(2, 3)(3, 4)(4, 5) 編輯:正如@masklin的comment1和@SebastianRedl的comment2所指出的,您還可以使用stdlib中的windows,避免在項目中包含Itertools。但請注意,它只適用于切片(或強制執行切片的對象),而不適用于一般迭代器(在您的情況下這很好)。 let data = vec![0, 1, 2, 3, 4, 5];let it = data.windows(2);for elem in it { println!("{:?}", elem);