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