Rust中的多维数组转换为多维HashMap

  • 本文关键字:HashMap 转换 数组 Rust rust
  • 更新时间 :
  • 英文 :

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();

游乐场

最新更新