Pythonで辞書の値をシャッフルする

Pythonで辞書の値をシャッフルしてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■辞書を作成する

辞書の値をシャッフルする前に、値をシャッフルする辞書を作成します。

■コード

test_dict = {"Apple":1,"Banana":2,"Grape":3,'Peach':4,'Strawberry':5}

print(test_dict)

今回はテストでtest_dictという辞書を作成し、辞書の中にキーと値を格納します。

■実行

作成した辞書をprint関数で出力すると、辞書の中にキーと値が格納されていることが確認できました。

■辞書の値をシャッフルする

■shuffle(), zip() ,dict()を使用する

辞書の用意ができましたので、辞書の値をシャッフルするスクリプトを書いていきます。

■コード

import random

test_dict = {"Apple":1,"Banana":2,"Grape":3,'Peach':4,'Strawberry':5}

temp = list(test_dict.values())
random.shuffle(temp)

res = dict(zip(test_dict,temp))

print(str(res))

インポートでrandomモジュールを呼び出します。tempという変数を作成し、list()で辞書内の値を取り出してリスト化し格納します。格納後、random.shuffle()でリスト化した要素をシャッフルします。

シャッフル後、resという変数を作成し、dict()で辞書を再度作成します。作成後、zip()で辞書内の値をシャッフルしたものと、今回用意した辞書を結合します。

結合後、print関数で結合した辞書を出力します。

■実行

このスクリプトを「Shuffle_dictionary_2.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、今回用意した辞書の値がシャッフルされて出力できることを確認できました。

■sample(),zip()を使用する

では、次に別の方法で辞書の値がシャッフルしてみます。

■コード

from random import sample 

test_dict = {"Apple":1,"Banana":2,"Grape":3,'Peach':4,'Strawberry':5}

res = dict(zip(test_dict,sample(list(test_dict.values()),len(test_dict))))

print(str(res))

resという変数を作成し、dict()で辞書を作成します。辞書内には、今回用意した辞書と、

・list()で今回用意した辞書の値を取り出しリスト化したもの

・len()で辞書の要素数を取得

これをsample()でシャッフルしたものをzip()で結合します。

結合したものをprint関数で出力します。

■実行

このスクリプトを「Shuffle_dictionary_3.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、今回用意した辞書がシャッフルされて出力できることが確認できました。

コメント

タイトルとURLをコピーしました