0
0
テーマ、知りたいこと
discord.pyを使用してdiscordのチーム分けbotを作成したいのですが、「IndexError:list index out of range」とエラーが出て上手くいきません。どこを改良したらいいでしょうか?
想定していた流れ
通話に参加しているユーザーを取得して、リスト(teamL)に格納
↓
作成したいチーム数(X_int)と同じ数のからのリストが入った多重リスト(team)を作成
↓
teamLの末尾からチームの人数分の要素をteam内の空のリストに順番に追加
↓
追加したユーザーをteamLから削除
↓
余ったユーザーをteam内のリストに1人ずつ順番に追加していく
実際に書いたコード (該当部分のみ)
python
1#入力した値を取得 2def check(m): 3 print(m.content) #デバック用 4 print(m.content == "2") #デバック用 5 return m.content == "2" #デバック用 6 7 msg = await client.wait_for("message", check=check) 8 print(msg.content) #デバック用 9 #受け取った文字列を数値に変換できるかの確認 10 try: 11 X = msg.content 12 print(X) #デバック用 13 print(int(X)) #デバック用 14 X_int = int(X) #分けたいチーム数 15 16 #できなかった場合 17 except : 18 await message.channel.send("最初からやり直してください") 19 20 #できた場合 21 else: 22 #1チームの人数(numT)とあまりの人数(numA)を算出 23 i = len(teamL) 24 numA = i % X_int 25 numT = (i - numA) // X_int 26 27 #多重リスト内の空のリストにチームの人数ずつ振り分けていく 28 #振り分けたユーザーは元のリストから削除する 29 Y = 0 30 team = [[] for i in range(X_int)] 31 while Y < X_int: 32 team[Y] = teamL[-numT] #エラーが出た個所 33 del teamL[-numT] 34 Y += 1 35 36 #余ったユーザーを多重リスト内のリストに1人ずつ振り分けて行く 37 Z = 0 38 while len(teamL) == 0: 39 team[Z].append = teamL[Z] 40 del teamL[Z] 41 Z += 1
回答1件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。