我想創建一個任務列表,我已經從一些文本文件中讀取並將它們放入列表中。我想創建一個我將在一天中完成的主要清單,但是我對此有一些規則。隨機列表與規則
一個列表具有不依賴於完成順序的單獨日常任務。我把這個清單稱爲「每日」。我已經爲我的項目準備了另一份任務清單,但這些清單取決於完成的訂單。這個名單被稱爲'項目'。我有第三個必須在一天結束時做的事情清單。我稱之爲'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