所以我有一个 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 名玩家占据。最后一节课不是由一名球员参加,而是由每队两名球员参加。
如果 SwitchClassList 包含每个班级有 2 个玩家的班级,那么这个东西就会中断。
我将错误追溯到这一行:
teamA.remove(j)
事实证明,如果选择了包含两名球员的班级,则此行会从 teamA 列表(然后是 teamB 列表)中删除 BOTH 球员。但是......我认为python中的列表删除只删除了第一个元素。我误解了这个功能吗?对此有什么潜在的解决办法?