我想创建一个任务列表,我已经从一些文本文件中读取并将它们放入列表中。我想创建一个我将在一天中完成的主要清单,但是我对此有一些规则。随机列表与规则
一个列表具有不依赖于完成顺序的单独日常任务。我把这个清单称为“每日”。我已经为我的项目准备了另一份任务清单,但这些清单取决于完成的订单。这个名单被称为'项目'。我有第三个必须在一天结束时做的事情清单。我称之为'endofday'。
所以这里是基本规则。
随机任务列表,其中可以按任意顺序执行日常任务,其中项目任务可以随机插入主列表的任意位置,但必须保持彼此之间的原始顺序,并且每天结束任务附加到主列表中。
我明白如何从random.randint()获得一个随机数,附加到列表,读取文件和所有这些......但逻辑给了我一个'大脑'的例子。任何人都想对此采取措施?
编辑:
好吧,我解决它在我自己的,但至少问这个问题让我来想象它在我的头上。这就是我所做的。
random.shuffle(daily)
while projects:
daily.insert(random.randint(0,len(daily)), projects.pop(0))
random.shuffle(endofday)
daily.extend(endofday)
for x in daily: print x
感谢您的回答,我会给你们一些反正!
再次编辑:
废话我才意识到这不是正确的答案笑
最后编辑时间我发誓:
position = []
random.shuffle(daily)
for x in range(len(projects)):
position.append(random.randint(0,len(daily)+x))
position.sort()
while projects:
daily.insert(position.pop(0), projects.pop(0))
random.shuffle(endofday)
daily.extend(endofday)
for x in daily: print x
我LIED:
我只是想过会发生什么当职位有重复的价值观,并且看我的第一次测试返回1,3,2,4为我的项目。我要吮吸它,并使用回答者的解决方案笑
OR NOT:
position = []
random.shuffle(daily)
for x in range(len(projects)):
while 1:
pos = random.randint(0,len(daily)+x)
if pos not in position: break
position.append(pos)
position.sort()
while projects:
daily.insert(position.pop(0), projects.pop(0))
random.shuffle(endofday)
daily.extend(endofday)
for x in daily: print x
请删除中间版本。请用最终版本回答你的问题。历史不是很有趣。问题和答案很有趣。 – 2009-07-03 19:20:28