発生させた乱数を確認する方法
解決したいこと
「random.sample」で発生させた乱数の結果がどうなっているのかを確認したいです。
以下のように「prefs_list」と「prefd_list」から「pref」に「random.sample」でランダム抽出し、それを「1:BrandNew」に代入し、これが含まれる「barnd_news」を用いて最終的に結果が出力されます。
そこで組み込んでしまった「1:BrandNew」の中身が知りたいのですが、最後に「print(pref)」を行なっても「1:BrandNew」に生成されたものとは別のリストが出力されてしまいます。実際に「1:BrandNew」で生成されたリストを確認するにはどうしたら良いのでしょうか。シード値の設定等、自分でも試してはみたのですが、よくわからないまま終わってしまいました。
ご教授いただけると幸いです。
該当するソースコード
prefs_list = ['A','B','C']
prefd_list = [1,2,3,4,5,6,7,8]
for i in range(10):
pref = random.sample(prefs_list,3)
brand_news = {
1: BrandNew(pref),
2: BrandNew(['A', 'B', 'C']),
3: BrandNew(['B', 'A', 'C']),
4: BrandNew(['B', 'A', 'C']),
5: BrandNew(['A', 'C', 'B']),
6: BrandNew(['C', 'A', 'B']),
7: BrandNew(['A', 'B', 'C']),
8: BrandNew(['B', 'A', 'C']),
}
departments = {
'A': Department(random.sample(prefd_list,8), 10),
'B': Department([1, 7, 4, 5, 3, 2, 8, 6], 10),
'C': Department([5, 6, 7, 8, 1, 2, 3, 4], 10),
}
# 全て配属されるまで実行
while len(xs := not_keeped_applicatns(brand_news, departments)) > 0:
# 仮決定されてない応募者を処理対象者とする
for x in xs:
target_dpts = brand_news[x].pop_preference()
departments[target_dpts].this_step_applicant = [x]
print(i)
print(pref)
print('A',departments['A'].keep_members)
print('B',departments['B'].keep_members)
print('C',departments['C'].keep_members)