rust - 排序然后在一行中删除一个整数的锈向量
问题描述
我想对生锈的向量进行排序然后去重i32
:
fn main() {
let mut vec = vec![5,5,3,3,4,4,2,1,2,1];
vec.sort().collect().dedup();
println!("{:?}", vec);
}
这段代码不起作用,但如果dedup
部分以这种方式完成,那就没问题了:
vec.sort();
vec.dedup();
在我的示例中,sort
我该怎么做?dedup
解决方案
使用itertools
,您可以:
use itertools::Itertools;
fn main() {
let mut vec = vec![5,5,3,3,4,4,2,1,2,1];
vec = vec.into_iter().sorted().dedup().collect();
println!("{:?}", vec);
}
不过,这确实取决于您为什么认为需要单线。如果实际上是因为您需要一个表达式,那么您可以使用一个块:
vec = {
vec.sort();
vec.dedup();
vec
};
推荐阅读
- scala - 将多个 JSON 文件合并为单个 JSON 和 parquet 文件
- ruby - 在 ThreadPool 中保留顺序:如何在特定索引位置将行插入 csv?
- reactjs - react组件的构造函数被调用了两次
- android - Android Studio MediaStore Storage 无法访问文件夹
- javascript - 使用 Express 和 Mongodb 在 Node js 中注册表格
- powershell - Powershell 不会返回哈希表键值
- amazon-web-services - 如何将 AWS SSO 设置为 Auth0 Enterprise SAML 连接
- python - 使用混合数量的标识符向左合并
- mvvm - MVVM、数据绑定、改造和回收站视图
- javascript - 无法从数组中解构映射函数。为什么?