先看python
a = [1,2,3]
b = [4,5,6]
c = [7,8,9,0]
list(zip(a,b))
list(zip(a,c))
结果为
[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 9)]
再看rust
let a = [1, 2, 3];
let b = [4, 5, 6];
let d = a.iter().zip(b.iter());
for z in d {
println!("{:?}", z);
}
结果
(1, 4)
(2, 5)
(3, 6)
功能都是类似的
再看看map
map(lambda x: x ** 2, [1, 2, 3, 4, 5])
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
rust 3个迭代
let itr1 = [100, 200, 300, 400, 500, 600];
let itr2 = [10 , 20, 30, 40, 50 ,60];
let itr3 = [1, 2, 3, 4 ,5 , 6];
let iter = itr1.iter()
.zip( itr2.iter())
.zip( itr3.iter())
.map(|((x, y), z)| (x, y, z));
for (itr1, itr2, itr3) in iter {
println!("{} {} {}", itr1, itr2, itr3);
}