use std::collections::HashMap;
fn main() {
let tuples = [("outer1", [("inner1", 1), ("inner2", 2), ("inner3", 3)])];
let m: HashMap<_, _> = tuples.into_iter().collect();
println!("{:?}", m);
}
此代码打印以下内容:{"outer1": [("inner1", 1), ("inner2", 2), ("inner3", 3)]}
这是字符串到元组数组的HashMap。相反,我也想创建内层的HashMap,即:{"outer1": {"inner1": 1, "inner2": 2, "inner3": 3}}
游乐场:https://play.rust-lang.org/?version=stable&mode=调试&edition=2021&gist=9ef9dd56592ac820a86d529dba085129
有没有一种干净、惯用的方法可以做到这一点?
映射条目并将其转换为哈希映射:
let m: HashMap<_, HashMap<_, _>> =
tuples
.into_iter()
.map(|(key, entries)| (key, entries.into_iter().collect()))
.collect();
游乐场