#辞書
辞書はリストと同様ミュータブルである。要素の追加、削除、変換などができる。ただし大きく変わっている点がある。それはオフセットがキーになると言うところである。キーとは一つ一つの要素に名前をつけると言うことです。しかし帰ってくるねはランダムである。
例えばリストでは
['Lou', '080-1234-5678', 'example.com']
と言うリストがあったとしよう。これは見ただけでわかるかもしれないが、その要素が確実に名前、電話番号、メールアドレスだとは確証できない。ここで辞書を使おう。
{'name': 'Lou', 'adress': '080-1234-5678', 'mailadress': 'example.com'}
こうすれば何が何かわかるでしょ!!これが辞書の強みです!!もっと具体的に辞書の使い方について説明していきます。ちなみに辞書の作り方は先ほどの通り{}で要素をデータ構造にまとめることが出来ます。
## 辞書の表現方法
key: value
#まとめて
items
dict()による変換
辞書は英語でdictionaryです。だから略してdict()って自分は考えてます笑笑
dict()関数を使えば先頭をkey、後方をvalueとして考えて変換してくれます。
gakki = [['g', 'guitar'], ['p', 'piano'], ['d', 'dram']]
dict(gakki)
{'p': 'piano', 'g': 'guitar', 'd': 'dram'}
と言う風に変換できます。他にも
#2字の文字列のリスト
gakki=('gguitar', 'ppiano', 'ddram')
dict(gakki)
{'g': 'guitar', 'd': 'dram', 'p': 'piano'}
#他にも2文の文字列のタプル2要素のリストのタプルがある。
##[key]で要素の追加や変換を行う
my_introduce = {'name': 'Lou', 'adress': '080-1234-5678', 'mailadress': 'example.com'}
my_introduce
{'name': 'Lou', 'adress': '080-1234-5678', 'mailadress': 'example.com'}
#あ、そういえばなんか忘れてたなー。あー好きな食べ物だ!
my_introduce['food'] = 'Sushi'
my_introduce
{'food': 'Sushi', 'adress': '080-1234-5678', 'name': 'Lou', 'mailadress': 'example.com'}
今何をしたかわかりましたか!?my_introduceに[追加したいものの(key)]=追加したい(value)
で完了です!!!また変換も同様でmy_introduce[変更したい(key)]=変換したいもの(value)でできます!!
また、辞書名[key]で要素を取得しましょう
my_introduce['name']
'Lou'
update()による辞書の結合
my_introduce2={'hobby': 'Qiita', 'sport': 'tennis'}
my_introduce.update(my_introduce2)
my_introduce
{'hobby': 'Qiita', 'adress': '080-1234-5678', 'food': 'Sushi', 'mailadress': 'example.com', 'sport': 'tennis'}
delによる指定したキーが持っている要素の削除
del my_introduce['sport']
{'hobby': 'Qiita', 'adress': '080-1234-5678', 'food': 'Sushi', 'mailadress': 'example.com'}
clear()を使えば全ての要素を削除してしまいますので慎重に考えて実行してください!!!
inを使ったキーの有無のテスト
やっぱりユーザーがnameに要素を入れてなかったら気になっちゃうよね?!だからinを使って確認してみよう
'hobby' in my_introduce
True
'sport' in my_introduce
False
##取得シリーズ
取得するものの結果は全てタプルである。しかしここで問題がある。返ってくるものは関数dict_key()と言う関数を含むタプルができる。詳細はkeys()による全てのキーの取得の時に言いますね!
###keys()による全てのキーの取得
my_introduce.keys()
dict_keys(['hobby', 'adress', 'food', 'mailadress'])
これはただ結果を見たいだけならこのままでいいが色々としたいならlist()を使えば本当のリストに変身できる。
list(my_introduce.keys())
['hobby', 'adress', 'food', 'mailadress']
と言う風にできる。このようにしていけば
value()は全ての要素を、items()は全てのキーと要素を取り出してくれる。
items()を使ってみよう!!
list(my_introduce.items())
[('hobby', 'Qiita'), ('adress', '080-1234-5678'), ('food', 'Sushi'), ('mailadress', 'example.com')]
個々のキーと値のペアは()のなかにタプル形式に返される。