请看下面我的地图
var romanNumeralDict map[int]string = map[int]string{
1000: "M",
900 : "CM",
500 : "D",
400 : "CD",
100 : "C",
90 : "XC",
50 : "L",
40 : "XL",
10 : "X",
9 : "IX",
5 : "V",
4 : "IV",
1 : "I",
}
我正在按钥匙的大小顺序遍历此地图
for k, v := range romanNumeralDict {
fmt.Println("k:", k, "v:", v)
}
但是,这打印出来
k: 1000 v: M
k: 40 v: XL
k: 5 v: V
k: 4 v: IV
k: 900 v: CM
k: 500 v: D
k: 400 v: CD
k: 100 v: C
k: 90 v: XC
k: 50 v: L
k: 10 v: X
k: 9 v: IX
k: 1 v: I
有没有一种方法可以按键的大小顺序打印出来,所以,我想像这样遍历这张地图
k:1
K:4
K:5
K:9
k:10
等等…
非常感谢您的帮助!
收集所有键,对它们进行排序,然后按键迭代地图,如下所示:
keys := make([]int, 0)
for k, _ := range romanNumeralDict {
keys = append(keys, k)
}
sort.Ints(keys)
for _, k := range keys {
fmt.Println(k, romanNumeralDict[k])
}
问题内容: 有一个现有的函数以下面的结尾,其中是一个字典: 返回给定字典的未排序迭代器。我想返回一个遍历按 key 排序的项目的迭代器。我怎么做? 问题答案: 尚未对此进行广泛的测试,但是可以在Python 2.5.2中使用。 如果您习惯于使用迭代器代替迭代器,那么上面的解决方案仍然可以使用 在Python 3.x中,使用代替返回迭代器。
本文向大家介绍vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?相关面试题,主要包含被问及vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?时的应答技巧和注意事项,需要的朋友参考一下 1、会先判断是否有iterator接口,如果有循环执行next()方法 2、没有iterator的情况下,会调用Object.keys()方法,在不同浏览器中,JS引擎不能保证输出顺序
二叉树的预序遍历是{8,5,9,7,1,12,4,11,3},其顺序是{9,5,1,7,12,8,4,3,11}。用它构造二叉树并执行级别顺序遍历。最后构造一个二叉搜索树(BST),从左到右依次获取在上述级别顺序遍历中出现的键值。这个BST的级别顺序遍历是什么?
问题内容: 我创建了一个队列,其中包含一些对象,这些对象要按照它们在队列中的放置顺序进行迭代(第一个对象放在队列中,第二个对象放在队列中,第三个对象…) 我看到了一种在线执行此操作的方法,但不确定是否可以确保以正确的顺序访问队列中的对象? 谢谢您的帮助。 问题答案: 这取决于您使用哪种实现。 例如,保证迭代将以FIFO(插入)顺序返回元素。这是因为它实现了接口。 但是一般来说,其他类型的队列不一定
问题内容: 简而言之:无论地图的类型如何,如何按已排序的键顺序遍历地图? 我发现了一些相关的问题,最接近的问题表明,如果不依靠模块,就不可能做到这一点。这种理解正确吗? 考虑下面的Go代码,该代码以其键的排序顺序遍历两个不同类型的映射: 对于两种不同的地图类型,提取键然后对其进行排序的逻辑是重复的。 有什么方法可以排除这种逻辑并避免重复吗? 我在尝试编写提供方法的接口时遇到了麻烦。特别是,of的返
我想在级别顺序遍历中打印出BST。但是我以这种奇怪的方式得到了输出。此外,我使用Java可视化工具来检查我的算法,没有线索,因为可视化工具没有说明多个实例。我在想,要么我的变量没有正确地添加到我的实例中,要么没有添加到