私はより広範なアルゴリズムを書いていますが、私はこの問題が働いていないと考えています。ここ リスト問題Python
コードの煩雑スニペット
..difcheck = []
count = 1
questionsneeded = 4
required_dif = ["Easy", "Hard", "Medium", "Easy"]
required_topics = ["Graphs", "Math", "Geometry", "Fun"]
availablelist = [("Graphs", "Easy"), ("Fun", "aasd"), ("Geometry", "Medium"), ("Math", "Easy")]
z = 0
answerlist = []
while z < questionsneeded:
difs = required_dif
topics = required_topics
for x in range(len(availablelist)):
if availablelist[x][0] in required_topics and availablelist[x][1] in required_dif :
difcheck.append(availablelist[x])
try:
required_dif.remove(availablelist[x][0])
required_topics.remove(availablelist[x][1])
except ValueError as exception:
continue
availablelist.append(availablelist[0])
answerlist.append(len(difcheck))
del availablelist[0]
print("availablelist ")
print(availablelist)
print("difcheck ")
print(difcheck)
z = z + 1
del availablelist[0]
del difcheck[:]
コードはavailablelistにおけるタプルを介して検索し、required_topicsのすべての要素とrequired_difタプル要素1内のすべての要素とタプル要素0とを比較します。
両方が両方のリストにある場合、タプルはdifcheckに追加されます。
これは、z = questionsneededになるまでこれを繰り返します。利用可能なリストのタプルは毎回シャッフルされるべきです(SHOULD)。
私が欲しいの出力がrequired_topicsの要素またはrequired_difはavailablelistでタプルにない場合には
availablelist
[("Graphs", "Easy"), ("Fun", "aasd"), ("Geometry", "Medium"), ("Math", "Easy")]
difcheck
[("Graphs", "Easy"), ("Fun", "aasd"), ("Geometry", "Medium"), ("Math", "Easy")]
availablelist
[("Fun", "aasd"), ("Geometry", "Medium"), ("Math", "Easy"), ("Graphs", "Easy")]
difcheck
[("Fun", "aasd"), ("Geometry", "Medium"), ("Math", "Easy"), ("Graphs", "Easy")]
availablelist
[("Geometry", "Medium"), ("Math", "Easy"), ("Graphs", "Easy"), ("Fun", "aasd")]
difcheck
[("Geometry", "Medium"), ("Math", "Easy"), ("Graphs", "Easy"), ("Fun", "aasd")]
availablelist
[("Math", "Easy"), ("Graphs", "Easy"), ("Fun", "aasd"), ("Geometry", "Medium")]
difcheck
[("Math", "Easy"), ("Graphs", "Easy"), ("Fun", "aasd"), ("Geometry", "Medium")]
である私が手出力が
availablelist
[('Fun', 'aasd'), ('Geometry', 'Medium'), ('Math', 'Easy'), ('Graphs', 'Easy')]
difcheck
[('Graphs', 'Easy'), ('Geometry', 'Medium'), ('Math', 'Easy')]
availablelist
[('Math', 'Easy'), ('Graphs', 'Easy'), ('Geometry', 'Medium')]
difcheck
[('Geometry', 'Medium'), ('Math', 'Easy'), ('Graphs', 'Easy')]
availablelist
[('Geometry', 'Medium'), ('Graphs', 'Easy')]
difcheck
[('Graphs', 'Easy'), ('Geometry', 'Medium')]
availablelist
[('Graphs', 'Easy')]
difcheck
[('Graphs', 'Easy')]
あり、それはないだろうdifcheckに追加されました。この場合、すべてが追加されるように完璧なマッチがあります。
問題はおそらく非常に明白ですが、私はすべてぼやけてしまい、それを見ることができません。
変数を表示し、プログラムで何が起こっているのかを(ステップバイステップで)見たり、デバッガの使い方を知るために 'print()'を使用してください。 – furas
また、ここで示されているwhileループの字下げは正しくありません – Sundeep
要素を削除すると間違ったインデックスがあります。あなたは 'required_dif'リストから' topic'を削除し、 'required_topics'からは' dif'を削除しようとします。例外を伴って 'print()'を使ってください。エラーが出る可能性があり、なぜプログラムが期待通りに動作しないのかわかりません。 – furas