randomモジュールを使う

pythonのramdomモジュールを使って、20人を超える飲み会の座席を固めてみる。

ramdomモジュールは、loop内で使っても、n個 – 1とかには出来ないらしく、10枚のカードから1枚選んで、また10枚の中に戻す。と言った動きになる。

member.yml

※氏名は平成21年生まれの名前ランキングから抜粋

[code]
member:
– "佐藤 優衣"
– "田中 美羽"
– "佐藤 花音"
– "鈴木 大翔"
– "吉田 悠人"
– "田中 優衣"
– "高橋 美結"
– "佐藤 愛莉"
– "鈴木 杏奈"
– "吉田 百花"
– "佐藤 翔太"
– "山口 結愛"
– "田中 大翔"
– "伊藤 悠真"
– "加藤 颯真"
– "佐藤 優成"
– "森 悠真"
– "中村 優希"
– "田中 悠翔"
– "鈴木 悠真"

table:
– A-1
– A-2
– A-3
– A-4
– A-5
– A-6
– B-1
– B-2
– B-3
– B-4
– B-5
– B-6
– C-1
– C-2
– C-3
– C-4
– C-5
– C-6
– C-7
– C-8
[/code]

lottery.py
[code]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import yaml
import random

base = os.path.dirname(os.path.abspath(__file__))
input = (os.path.join(base,’member.yml’))

f = open(imput, ‘r’)
result = yaml.load(f)
f.close()

members= (random.sample(source[‘member’],len(source[‘member’])))
tables = (source[‘table’])

for (t,m) in zip(tables,members):
print(t + ‘\t’ + m)

[/code]

[code]
(random.sample(source[‘member’],len(source[‘member’])))
[/code]

がramdomモジュールを使っている箇所で、
random.sample(配列,何個取るか?)と使う。

全メンバーを1度のみ抽出するので、len(source[‘member’])としている。