Talk Slot Assignment

In [ ]:
names = """
""".split("\n")

names = [n for n in names if n]
names = sorted(names, key=lambda n: n.split()[-1])
In [ ]:
talk_days = """
Friday, September 21, 2018
# Friday, September 28, 2018
Friday, October 5, 2018
Friday, October 12, 2018
Friday, October 19, 2018
Friday, October 26, 2018
Friday, November 2, 2018
Friday, November 9, 2018
Friday, November 16, 2018
# Friday, November 23, 2018
Wednesday, November 28, 2018
Friday, November 30, 2018
Wednesday, December 5, 2018
Friday, December 7, 2018
""".split("\n")

talk_days = [d for d in talk_days if d and not d.startswith("#")]
talk_slots = [f"{day} Talk {nr}" for day in talk_days for nr in [1, 2]]
In [ ]:
from random import randrange, seed
seed()

slot_urn = talk_slots[:]
slot_to_name = {}

for n in names:
    i = randrange(len(slot_urn))
    slot = slot_urn.pop(i)
    slot_to_name[slot] = n
    print(f"{n}\t{slot}")
    
print()
print(f"{len(slot_urn)} slots left over")
print()
for slot in talk_slots:
    print(f"{slot}\t{slot_to_name[slot]}")
    
In [ ]: