【发布时间】:2020-04-30 01:25:53
【问题描述】:
由于锁定,我正在尝试为配对对话创建列表。
我有一份同事名单。
我已经创建了一个日期列表。
我想为每一对按顺序分配日期,直到所有对都分配完毕。
但我不知道如何跟踪一对是否已经被分配以及如何“跑到同事的尽头”。
这是我所拥有的:
import itertools
import datetime as dt
import numpy as np
colleagues = ["C",
"S",
"D",
"I",
"P"]
colleague_pairs = sorted(list(itertools.combinations(colleagues, 2)))
start_date = dt.datetime.today() + dt.timedelta(days=5)
dates = [start_date]
current_date = dates[-1]
while len(dates) < (len(colleagues) -1):
new_date = current_date + dt.timedelta(days=1)
if new_date.weekday() < 5:
dates.append(new_date)
current_date = new_date
working_days = [date.strftime('%Y-%m-%d') for date in dates ]
[('C', 'D'), ('C', 'I'), ('C', 'P'), ('C', 'S'),
('D', 'I'), ('D', 'P'),
('I', 'P'),
('S', 'D'), ('S', 'I'), ('S', 'P')]
['2020-05-04', '2020-05-05', '2020-05-06', '2020-05-07']
我想最终将所有日期应用于所有唯一对:
{('C', 'D'): '2020-05-04'}
{('C', 'I'): '2020-05-05'}
{('C', 'P'): '2020-05-06'}
{('C', 'S'): '2020-05-07'}
{('S', 'D'): '2020-05-05'}
{('S', 'I'): '2020-05-06'}
{('S', 'P'): '2020-05-07'}
{('D', 'I'): '2020-05-06'}
{('D', 'P'): '2020-05-07'}
{('I', 'P'): '2020-05-07'}
我试图迭代所有天,但显然没有奏效:
for pair in colleague_pairs:
for day in working_days:
print({pair:day})
{('C', 'D'): '2020-05-04'}
{('C', 'D'): '2020-05-05'}
{('C', 'D'): '2020-05-06'}
{('C', 'D'): '2020-05-07'}
{('C', 'I'): '2020-05-04'}
{('C', 'I'): '2020-05-05'}
{('C', 'I'): '2020-05-06'}
{('C', 'I'): '2020-05-07'}
{('C', 'P'): '2020-05-04'}
{('C', 'P'): '2020-05-05'}
{('C', 'P'): '2020-05-06'}
{('C', 'P'): '2020-05-07'}
{('C', 'S'): '2020-05-04'}
{('C', 'S'): '2020-05-05'}
{('C', 'S'): '2020-05-06'}
{('C', 'S'): '2020-05-07'}
{('D', 'I'): '2020-05-04'}
{('D', 'I'): '2020-05-05'}
{('D', 'I'): '2020-05-06'}
{('D', 'I'): '2020-05-07'}
{('D', 'P'): '2020-05-04'}
{('D', 'P'): '2020-05-05'}
{('D', 'P'): '2020-05-06'}
{('D', 'P'): '2020-05-07'}
{('I', 'P'): '2020-05-04'}
{('I', 'P'): '2020-05-05'}
{('I', 'P'): '2020-05-06'}
{('I', 'P'): '2020-05-07'}
{('S', 'D'): '2020-05-04'}
{('S', 'D'): '2020-05-05'}
{('S', 'D'): '2020-05-06'}
{('S', 'D'): '2020-05-07'}
{('S', 'I'): '2020-05-04'}
{('S', 'I'): '2020-05-05'}
{('S', 'I'): '2020-05-06'}
{('S', 'I'): '2020-05-07'}
{('S', 'P'): '2020-05-04'}
{('S', 'P'): '2020-05-05'}
{('S', 'P'): '2020-05-06'}
{('S', 'P'): '2020-05-07'}
我觉得我想要的组合必须有一个词,但我想不出来。
我怎样才能将我所拥有的东西调整到我需要的东西?
【问题讨论】:
标签: python combinations