I'm writing a small Python program that will simulate a certain TV show (it's for fun guys ok please don't judge me).
In this program, I am trying to randomly sort the contestants into a list of lists (to emulate a Team Challenge, as you may say). I wrote a function that (is intended) to take in an unsorted list of Contestant objects (because I want to access the name attribute of each Contestant object) and a list that contains the information about the sizes of each individual list in the 2D list I intend to return in the end.
To further explain the second parameter, I'll give an example. Let's say the Queens need to be divided into 2 teams of 5 and 6. The numTeams will then be [5,6].
This is full function that I have written so far:
def sortIntoTeams(contest_obj, numTeams):
# where I will eventually store all the names of the individuals
queenList = 
# creates 2D list, however, I just initialized the first subscript
# part, so to speak
teamShuffledList = len(numTeams) * [[None]]
# this was just a test, but I made another for loop to
# fill the second subscript part of the 2D list, so to speak too
for i in range(0, len(numTeams)):
count = numTeams[i]
teamShuffledList[i] = count * 
# for loop to fill queenList with all the names of the Queen
# objects in the contest_obj
for i in range(0, countRemaining(contest_obj)):
# from random import shuffle, to shuffle queenList
def sortIntoTeams(contest_obj, numTeams): # Create a randomly-ordered copy of the contestants' names random_contestants = [x.name for x in contest_obj] random.shuffle(random_contestants) result =  for teamsize in numTeams: # Take the first <teamsize> contestants from the list result.append(random_contestans[:teamsize]) # Remove those contestants, since they now have a team random_contestants = random_contestants[teamsize:] return result
There is no need to "initialize" anything.