# やりたいこと
- list型のオブジェクトは、中の値の順番を変えるShuffleメソッドを持っている- しかし、dict型の変数には、中の配列をシャッフルするShuffleメソッドを持っていない
- なので、dict型のメソッドでも、shuffleできるようにしたい
- 引数にdict型のオブジェクトを入れると、shuffleしてくれる関数を作成する
ちなみにlist型のオブジェクトはこんな感じ
# リスト型 li1 = [("a", 3), ("b", 2), ("c", 5)]
で、これをdict型に直すとこんな感じ
di1 = dict(li1) # => {'b': 2, 'c': 5, 'a': 3}
# ソースコード
shuffleDict.py
#1 パッケージのインポート
import random
#2 適当な辞書型(dict型)オブジェクトの作成
family = {
"sazae":"サザエ",
"katsuo":"カツオ",
"masuo":"マスオ",
"tara":"タラ",
"hune":"フネ",
"wakame":"ワカメ",
"namihei":"波平",
"tama":"タマ"
};
#3 辞書型オブジェクトをシャッフルできるメソッド
def shuffleDict(d):
keys = list(d.keys())
random.shuffle(keys)
[(key, d[key]) for key in keys]
random.shuffle(keys)
[(key, d[key]) for key in keys]
random.shuffle(keys)
keys = [(key, d[key]) for key in keys]
#keys = d(keys)
return dict(keys)
#4 元の辞書型オブジェクト
print(family)
#5 シャッフル後の辞書型オブジェクト
print(shuffleDict(family))
実行結果はこちら
{'tara': 'タラ', 'wakame': 'ワカメ', 'tama': 'タマ', 'katsuo': 'カツオ', 'masuo': 'マスオ', 'hune': 'フネ', 'namihei': '波平', 'sazae': 'サザエ'} {'tara': 'タラ', 'masuo': 'マスオ', 'tama': 'タマ', 'katsuo': 'カツオ', 'wakame': 'ワカメ', 'hune': 'フネ', 'namihei': '波平', 'sazae': 'サザエ'}