[Python] ディクショナリ | dict
こんにちは、@yasuです。
今回は、ディクショナリ(dict)の使い方を習得したいと思います。
実行環境はこちらです。
https://repl.it/
分かったこと。
定義するとき、{}で囲む 例{キー1:値1, キー2:値2, キー3:値3}
リストlistとの違いは、キーを用いて要素の追加、削除、更新をする。
コード
# ----------------------------------------
# ディクショナリ
# ----------------------------------------
# 代入方法1
menu={100:"ラーメン",101:"餃子",200:"ライス",300:"ビール"}
print(type(menu))
#<class 'dict'>
#要素数 len
print(len(menu))
#4
print(menu)
#{100: 'ラーメン', 101: '餃子', 200: 'ライス', 300: 'ビール'}
# 代入方法(キーは文字列もOK)
menu2={"A100":"ラーメン","A101":"餃子","A200":"ライス","A300":"ビール"}
print (menu2)
#{'A100': 'ラーメン', 'A101': '餃子', 'A200': 'ライス', 'A300': 'ビール'}
# 参照方法 [キー]
# [100],[101],[200]
print(menu[100])
#ラーメン
try:
print(menu[102])
except KeyError as identifier:
print("KeyError:",identifier)
#KeyError: 102
#代入OK
try:
menu[100]="五目焼きそば"
print(menu[100])
#五目焼きそば
except TypeError as identifier:
print(identifier)
#追加(新しいキー)
menu[102]="五目ラーメン"
print(menu)
#{100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール', 102: '五目ラーメン'}
#追加(新しいキー)
menu[201] ="ライス"
print(menu)
#{100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール', 102: '五目ラーメン', 201: 'ライス'}
#削除(指定キー)
m = menu.pop(102)
print(menu)
#{100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール', 201: 'ライス'}
print(m)
#五目ラーメン
#削除(最後)
m=menu.popitem()
print(menu)
#{100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール'}
print(m)
#(201, 'ライス')
#検索(存在するときは、値を返す)
v = menu.get(101)
print(v)
#餃子
#検索(存在しないときは、Noneを返す)
v = menu.get(102)
print(v)
#None
import sys
try:
v = menu[101]
print(v)
#餃子
v = menu[102]
print(v)
except KeyError as identifier:
print("KeyError:",identifier)
#KeyError: 102
except :
print("[例外]",sys.exc_info())
# ----------------------------------------
# 代入方法2(キーのみ代入される!?)
[name,price,oomori_umu]={1:"ラーメン",2:400,3:True}
print(type(name))
#<class 'int'>
print(name,price,oomori_umu)
#1 2 3
#複製(別物)
menu2 = menu.copy()
menu.clear()
print(menu,menu2)
#{} {100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール'}
#複製ではない(同じもの)
menu = menu2
print(menu,menu2)
#{100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール'} {100: '五目焼きそば', 101: '餃子', 200: 'ライス', 300: 'ビール'}
menu.clear()
print(menu,menu2)
#{} {}
menu = {100:"ラーメン",101:"餃子",200:"ライス",300:"ビール"}
items = menu.items()
print(items)
#dict_items([(100, 'ラーメン'), (101, '餃子'), (200, 'ライス'), (300, 'ビール')])
no = 0
for v in items:
no+=1
print(no,v[0],v[1])
#1 100 ラーメン
#2 101 餃子
#3 200 ライス
#4 300 ビール
#もう一つの方法
no = 0
for a,b in items:
no+=1
print(no,a,b)
#1 100 ラーメン
#2 101 餃子
#3 200 ライス
#4 300 ビール
#enumerateを使う方法
for x in enumerate(menu.items()):
print(x)
#(0, (100, 'ラーメン'))
#(1, (101, '餃子'))
#(2, (200, 'ライス'))
#(3, (300, 'ビール'))
#enumerateを使うもう一つの方法
for x in enumerate(menu):
print(x,menu[x[1]])
#(0, 100) ラーメン
#(1, 101) 餃子
#(2, 200) ライス
#(3, 300) ビール
# ----------------------------------------
#型変換(キーのみ代入される!?)
menu={100:"ラーメン",101:"餃子",200:"ライス",300:"ビール"}
menu = tuple(menu)
print(menu)
#(100, 101, 200, 300)
@yasu transfered 0.5 KRWP to @krwp.burn. voting percent : 5.90%, voting power : 60.06%, steem power : 1922063.43, STU KRW : 1200.
@yasu staking status : 250 KRWP
@yasu limit for KRWP voting service : 0.5 KRWP (rate : 0.002)
What you sent : 0.5 KRWP [47162977 - 65661186fd31b592dcff1f974f3f2095cf614b8c]