私はいくつかのテキストファイルから読み込んだタスクのリストを作成してリストに入れようとしています。私はその日を通して何をしようとしているのかのマスターリストを作成したいが、これについてはいくつかのルールがある。ルール付きランダムリスト
1つのリストには、完了した順序に依存しない別々の日常的なタスクがあります。私はこのリストを「毎日」と呼んでいます。私は自分のプロジェクトの別のタスクリストを持っていますが、これは完了した注文に依存します。このリストは「プロジェクト」と呼ばれます。私は、日の終わりにやらなければならないことの3番目のリストを持っています。私はそれを「endofday」と呼ぶ。
ここに基本ルールがあります。
任意の順序で日常のタスクを実行できる任意のタスクのリストです。プロジェクトタスクは任意の位置でメインリストに無作為に挿入できますが、互いに対して元の順序にとどまる必要があります。メインリストに追加されます。
私はrandom.randint()から乱数を得る方法を理解しています。リストに追加してファイルを読み込んでいますが、そのロジックは私に「ハーティーな脳」のケースを与えています。誰もがこれに亀裂をしたいですか?
EDIT:
[OK]を私は自分自身でそれを解決したが、少なくとも質問をすることは私の頭の中でそれを描くために私を得ました。ここに私がしたことがあります。
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
回答ありがとうございます。私はあなたにいくつかの名誉を与えます。 AGAIN
編集:私はちょうどそれが正しい答えではありません実現
クラップ笑
私はSWEAR LAST EDIT:
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笑回答のソリューションを使用するつもりです:リストに
random.shuffleをシャッフルする
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
中間バージョンを削除してください。あなたの質問にFINALバージョンで答えてください。歴史は興味深いものではありません。質疑応答は面白いです。 –