だから私は2つのチームがあるpythonボットを持っていて、チームをスクランブルするはずのスクランブルコールがあります。2 つのチームはそれぞれリストに格納されており、それらをスクランブルする必要があります。(ランダムシャッフルを使用すると言う前に、ここでは機能しません)
各リストは辞書のリストです。各要素は、ユーザーに関する情報を含む辞書オブジェクトです。(例: ユーザーのニックネーム、ユーザー クラス、ユーザーの禁止ステータス、ユーザーの勝率など)
私はそれを変えることはできません - それは私の手に負えません。私は以下の解決策を思いつきました:
for i in switchingClassList: #switchingClassList is already filled with random classes that will be switched
playerList = []
for j in teamA:
if j['class'][0] == i: #if the user's class matches one in switchingClassList, that user will be part of the scramble
playerList.append(j)
teamA.remove(j)
for j in teamB:
if j['class'][0] == i:
playerList.append(j)
teamB.remove(j)
#there is more after, but that part works
だから、これはうまくいく...ちょっと。チームには 5 つの固有のクラスがあり、そのうちの 1 つを除いてすべて 1 人のプレーヤーが担当します。最後のクラスは 1 人のプレーヤーではなく、チームごとに 2 人のプレーヤーが受講します。
SwitchClassList に、クラスごとに 2 人のプレーヤーを持つクラスが含まれている場合、これは壊れます。
エラーを次の行までたどりました。
teamA.remove(j)
2 人のプレイヤーがいるクラスが選択された場合、この行は teamA リスト (および teamB リスト) から両方のプレイヤーを削除することがわかります。しかし... Pythonでリストを削除すると、FIRST要素のみが削除されたと思いました。関数を誤解していますか?これに対する潜在的な修正は何ですか?