【问题标题】:go - checking if key of one map present in another [duplicate]go - 检查一张地图的键是否存在于另一张地图中[重复]
【发布时间】:2016-11-21 00:10:39
【问题描述】:

我有一本字典

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"

我该如何检查?本质上,我想检查b 中的密钥1 是否存在于a 中。

【问题讨论】:

标签: go


【解决方案1】:

您可以使用 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)
        }
    }   
}

Playground Example 1

或者您可以检查第一个映射中的键值是否对应第二个映射中的值:

for key, val := range a {
    if val == b[key] {          
        fmt.Printf("%s\n", key)
    }
}

Playground Example 2

但第一个是惯用的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多