gpt4 book ai didi

rust - 按 rust 中的值对 HashMap 进行排序

转载 作者:行者123 更新时间:2023-12-03 11:40:32 39 4
gpt4 key购买 nike

在 python 中它是这样完成的:

>>> x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
>>> {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}

{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}

如何在 rust 中按值对 HashMap 进行排序?

到目前为止我的代码:

use std::collections::HashMap;

fn main() {
let mut count: HashMap<String, u32>= HashMap::new();
count.insert(String::from("A"), 5);
count.insert(String::from("B"), 2);
count.insert(String::from("C"), 11);
count.insert(String::from("D"), 10);

let highest = count.iter().max_by(|a, b| a.1.cmp(&b.1)).unwrap();

println!("largest hash: {:?}", highest); // largest hash: ("C", 11)
}

最佳答案

与 Python 的 dict 不同,Rust 的“内置”hashmap 是无序的,因此对其进行排序无效。

如果您出于某种原因需要有序 map ,您应该使用 indexmap .或者,BTreeMap 根据键排序

由于您并没有真正提出任何令人信服的用例,因此很难提供建议。

关于rust - 按 rust 中的值对 HashMap 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63950197/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com