Goのmap操作続き。range, 追加やdeleteなど。

 

要素の追加。

package main

import "fmt"

func main() {
    city := map[string]int{
        "NY": 100,
        "London": 200,
        "Tokyo": 300,
    }
    fmt.Println(city)

    fmt.Println(city["London"])      //key "London"の値出力

    fmt.Println(city["Bangkok"])     //要素がないkeyの値は0

    v, ok := city["Bangkok"]         //"Bangkok"の値と真偽を確認
    fmt.Println(v)
    fmt.Println(ok)

    city["Bangkok"] = 400            //要素"Bangkok"を追加

    //要素と値の真偽を取得し、trueの場合に処理を実行
    if v, ok := city["Bangkok"]; ok {
        fmt.Println(v)
    }

}

 

結果

map[London:200 NY:100 Tokyo:300]
200
0
0
false
400

 

rangeを使ってloop処理。

package main

import "fmt"

func main() {
    city := map[string]int{
        "NY": 100,
        "London": 200,
        "Tokyo": 300,
    }

    //keyにBangkokを追加
    city["Bangkok"] = 400
    

    //rangeでループ処理してkey:valueを出力
    for k, v := range city {
        fmt.Println(k, v)
    }

}

 

結果

Bangkok 400
NY 100
London 200
Tokyo 300

 

要素の削除。

package main

import "fmt"

func main() {
    city := map[string]int{
        "NY": 100,
        "Tokyo": 300,
    }
    
    fmt.Println(city)
    
    //"NY"を削除
    delete(city, "NY")
    fmt.Println(city)
    
    //要素と値の真偽を取得し、trueの場合に削除処理を実行
    if v, ok := city["Tokyo"]; ok {
        fmt.Println("num:", v)
        delete(city, "Tokyo")
    }
    fmt.Println(city)    //空のmapが出力される
}

 

結果

map[NY:100 Tokyo:300]
map[Tokyo:300]
num: 300
map[]

 

Pythonに置き換えると。

dict2.py

def main():

    city = {"NY": 100, "Tokyo": 300}
    print(city)

    # 辞書に要素を追加
    city["Bangkok"] = 400
    print(city)

    # popで要素を削除
    print(city.pop("NY"))
    print(city)

    # clearで辞書データを削除
    city.clear()
    print(city)


if __name__ == "__main__":
    main()

 

結果

{'NY': 100, 'Tokyo': 300}
{'NY': 100, 'Tokyo': 300, 'Bangkok': 400}
100
{'Tokyo': 300, 'Bangkok': 400}
{}

 

参考
【Go入門】mapの操作 – 要素の追加, range, delete

 

 

Airport Airport


関連がありそうな記事