我有一本字典
a = {1:11, 2:22}
我想检查b
中是否存在a
中的密钥
b = {3:33, 1:11}
我怎样才能用Go语言做到这一点?
我这样做了:
a:= make(map[string][]string)
a["1"] = append(a["1"], "11")
a["1"] = append(a["1"], "22")
我有一个词典b
:
b:= make(map[string]string)
b["1"] = "11"
我该怎么检查?基本上,我想检查1
中是否存在来自b
的密钥a
。
答案 0 :(得分:3)
您可以使用go惯用方法检查密钥存在:
if _, ok:= b[key]; ok
示例:强>
var (
a = map[string]int{
"alpha": 34, "bravo": 56, "charlie": 23,
"delta": 87, "echo": 56, "foxtrot": 12, "golf": 34, "hotel": 16,
"indio": 87, "juliet": 65, "kilo": 43, "lima": 98}
b = map[string]int{
"alpha": 34, "one": 56, "charlie": 23,
"insdio": 87, "julietta": 65, "kilo": 43, "lima": 98}
)
func main() {
for key, _ := range a {
if _, ok:= b[key]; ok {
fmt.Printf("%s\n", key)
}
}
}
或者您可以检查第一张地图中的键值是否与第二张地图中的值相对应:
for key, val := range a {
if val == b[key] {
fmt.Printf("%s\n", key)
}
}
但第一个是惯用的方式。