1个稳定版本
1.0.0 | 2021年7月22日 |
---|
#1421 在 算法
每月 738 次下载
在 2 个crate中使用(通过 polynomen)
15KB
193 行
zip-fill - 迭代器库
将两个迭代器连接起来,如果它们长度不同,则最短的迭代器将使用默认值进行扩展。
这两个迭代器必须具有相同的 Item
类型。
这与来自python库 itertool
的 zip_longest
算法类似。
示例
use zip_fill::ZipFill;
let a = [ 1, 2, 3, 4];
let b = [ 1, 2];
let z: Vec<_> = a.iter().zip_longest(&b, &0).collect();
assert_eq!(vec!((&1, &1), (&2, &2), (&3, &0), (&4, &0)), z);
let z: Vec<_> = zip_fill::zip_longest_with(&a, &b, &0, |a, b| a + b).collect();
assert_eq!(vec!(2, 4, 3, 4), z);
要求
最低测试的rustc版本:1.44
lib.rs
:
迭代器扩展
将两个迭代器连接起来,如果它们长度不同,则最短的迭代器将使用默认值进行扩展。
这两个迭代器必须具有相同的 Item
类型。
这与来自python库 itertool
的 zip_longest
算法类似。
示例
use zip_fill::ZipFill;
let a = [ 1, 2, 3, 4];
let b = [ 1, 2];
let z: Vec<_> = a.iter().zip_longest(&b, &0).collect();
assert_eq!(vec!((&1, &1), (&2, &2), (&3, &0), (&4, &0)), z);
let z: Vec<_> = zip_fill::zip_longest_with(&a, &b, &0, |a, b| a + b).collect();
assert_eq!(vec!(2, 4, 3, 4), z);