我需要查找
我对这些类型完全不了解。
Vec<(String, Vec<String>)>
中第二个元素中出现频率最高的字符串。use itertools::Itertools; // 0.8.0
fn main() {
let edges: Vec<(String, Vec<String>)> = vec![];
let x = edges
.iter()
.flat_map(|x| &x.1)
.map(|x| &x[..])
.sorted()
.group_by(|x| x)
.max_by_key(|x| x.len());
}
这段代码:
- 获取迭代器
- flat-map到元组的第二部分
- 将元素转换为
&str
- 排序(通过itertools)
- 按字符串进行分组(通过itertools)
- 找到字符串出现最多的组
这样可以得到出现频率最高的字符串组,但是它不会编译:
error[E0599]: no method named `max_by_key` found for type `itertools::groupbylazy::GroupBy<&&str, std::vec::IntoIter<&str>, [closure@src/lib.rs:9:19: 9:24]>` in the current scope
--> src/lib.rs:10:10
|
10 | .max_by_key(|x| x.len());
| ^^^^^^^^^^
|
= note: the method `max_by_key` exists but the following trait bounds were not satisfied:
`&mut itertools::groupbylazy::GroupBy<&&str, std::vec::IntoIter<&str>, [closure@src/lib.rs:9:19: 9:24]> : std::iter::Iterator`
我对这些类型完全不了解。