Python 基礎その6 辞書 dict
メモ。辞書 dict いろいろ。
#dict 辞書 stock={"S":7,"M":12,"L":3} print(stock) #{'S': 7, 'M': 12, 'L': 3} metro={ "G":"銀座線", #コメント "M":"丸の内線", #コメント "H":"日比谷線" #コメント } print(metro) #{'G': '銀座線', 'M': '丸の内線', 'H': '日比谷線'} #要素を数える stock={"S":7,"M":12,"L":3} print(len(stock)) #3 #dictで辞書を作る #タプル(キー、値)のリストから辞書を作る data=dict([("yellow",3),("blue",6),("green",5)]) print(data) #{'yellow': 3, 'blue': 6, 'green': 5} #キーのリストと値のリストから辞書を作る keys=["yellow","blue","green"] values=[3,6,5] data=dict(zip(keys,values)) print(data) #{'yellow': 3, 'blue': 6, 'green': 5} #キーワード引数を利用して辞書を作る data=dict(yellow=3,blue=6,green=5) print(data) #{'yellow': 3, 'blue': 6, 'green': 5} #初期値で辞書を作る fromkeys() stock=dict.fromkeys(["S","M","L"],0) print(stock) #{'S': 0, 'M': 0, 'L': 0} #文字列をキーとして、初期値を省略する data=dict.fromkeys("abcd") #1文字ずつ分割されてキーになる print(data) #{'a': None, 'b': None, 'c': None, 'd': None} #キーがあれば更新、なければ追加 data={"yellow":3,"blue":6,"green":5} print(data) #{'yellow': 3, 'blue': 6, 'green': 5} data["blue"] = 10 data["white"] = 5 print(data) #{'yellow': 3, 'blue': 10, 'green': 5, 'white': 5} #キーがあればそのまま、なければ追加 setdefault data={"yellow":3,"blue":6,"green":5} print(data) #{'yellow': 3, 'blue': 6, 'green': 5} data.setdefault("blue",10) #blueキーがあるので何もしない data.setdefault("white",10) #whiteキーはないので追加 print(data) #{'yellow': 3, 'blue': 6, 'green': 5, 'white': 10} #空の辞書を作る d1={} print(d1) #{} d2=dict() print(d2) #{} #空の辞書に要素を追加 number={} number["one"]=1 number["two"]=2 number["three"]=3 number["four"]=4 print(number) #{'one': 1, 'two': 2, 'three': 3, 'four': 4} #他の辞書で更新する data={"a":10,"b":20,"c":30} #元の辞書 newdata={"a":15,"d":99} #更新用の辞書 data.update(newdata) print(data) #{'a': 15, 'b': 20, 'c': 30, 'd': 99} #指定のキーの要素を削除する fruit={"apple":7,"orange":5,"mango":3} del fruit["mango"] print(fruit) #{'apple': 7, 'orange': 5} #辞書を複製する data={"a":100,"b":200,"c":300} #元の辞書 data_b=data #代入する data_b["c"]=0 #値を変更する print(data_b) #{'a': 100, 'b': 200, 'c': 0} print(data) #{'a': 100, 'b': 200, 'c': 0} 代入元のdataも更新されてしまう #辞書を複製する copyを使う data={"a":100,"b":200,"c":300} #元の辞書 data_b=data.copy() data_b["c"]=0 #値を変更する print(data_b) #{'a': 100, 'b': 200, 'c': 0} print(data) #{'a': 100, 'b': 200, 'c': 300} コピー元のdataは変化していません #辞書から値を取り出す members={"東京":21,"大阪":16,"福岡":11} print(members["東京"]) #21 キーが無かった時はエラーが発生 print(members.get("福岡")) #11 print(members.get("京都")) #None getを使うとエラーにならず、Noneを返す #キーがあるか調べる print("大阪" in members) #True print("京都" not in members) #True #全ての値を順に取り出す fruit={"apple":7,"orange":5,"mango":3,"peach":6} for key in fruit: value=fruit[key] print(f"{key}が{value}個") """ appleが7個 orangeが5個 mangoが3個 peachが6個 """ #全てのキーをリストに取り出す fruit={"apple":7,"orange":5,"mango":3,"peach":6} keys=list(fruit.keys()) print(keys) #['apple', 'orange', 'mango', 'peach'] #全てのキーをリストに取り出す 1文字目を大文字に変換したリストを作る keys=[key.capitalize() for key in fruit.keys()] print(keys) #['Apple', 'Orange', 'Mango', 'Peach'] #全ての値をリストに取り出す values=list(fruit.values()) print(values) #[7, 5, 3, 6] #辞書の値の合計をっ求める print(sum(values)) #21 #全ての要素を(キー,値)のリストにする キーと値をタプルのリストにする print(list(fruit.items())) #[('apple', 7), ('orange', 5), ('mango', 3), ('peach', 6)] #for in を利用 for key,value in fruit.items(): print(f"{key}が{value}個") """ appleが7個 orangeが5個 mangoが3個 peachが6個 """ #要素を取り出して削除する print(fruit.pop("apple")) #7 print(fruit) #{'orange': 5, 'mango': 3, 'peach': 6}