我正在尝试创建一个将字符串作为输入的函数,确定列表中有多少支球队和球员,并将球员随机分组。我正在使用discord bot作为上下文,但这在这里并不重要。
我尝试将数字与相应团队的空列表相关联,但是字典不允许在其中添加列表,而且我不知道另外两个如何将两个值相关联。
struct student_grades
{
int student_id;
int *grades_array[10];
int grades_array_pos;
int grades_array_size;
};
void add_grade(struct student_grades * student, int assignment_grade){
}
我希望能够输入一些团队和姓名列表,例如“ 2”和“ Billy,Susie,Frank,Luke,Kensie,Jack”,并在输出中显示“ Billy,Luke” ,“ Susie”,“ Frank,Jack,Kensie”,但由于脚本停止在字典保存列表中,因此目前没有输出。任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
您似乎在使用基本Python语法方面遇到了一些问题,例如if
与while
以及如何循环N次。
此外,似乎不需要字典。您可以只使用列表列表。
有关将玩家随机分为N队的简单方法,请参见Python - randomly partition a list into n nearly equal parts。
def PickTeam(number_of_teams, player_names):
PlayerList = player_names.split(", ")
random.shuffle(PlayerList)
teams = [PlayerList[i::number_of_teams] for i in range(number_of_teams)]
return teams
for team in PickTeam(2, "Billy, Susie, Frank, Luke, Kensie, Jack"):
print(team)
在列表理解中,PlayerList[i::number_of_teams]
是PlayerList
列表的一部分,从元素i
开始加星号,到达列表的末尾,取每个number_of_teams
元素。因此,如果number_of_teams
是3
,它将创建一个包含3个子列表的列表。第一个子列表将是:
[PlayerList[0], PlayerList[3], PlayerList[6], ...]
第二个将是:
[PlayerList[1], PlayerList[4], PlayerList[7], ...]
第三个是:
[PlayerList[2], PlayerList[5], PlayerList[8], ...]