human
I wrote the below code

    def tourn(ind1, ind2):
        if ind1.fitness.dominates(ind2.fitness):
            return ind1
        elif ind2.fitness.dominates(ind1.fitness):
            return ind2
        if (ind1.fitness.crowding_dist < ind2.fitness.crowding_dist):
            return ind2
        elif (ind1.fitness.crowding_dist > ind2.fitness.crowding_dist):
            return ind1
        if (random.random() <= 0.5):
            return ind1
        return ind2
    individuals_1 = random.sample(individuals, len(individuals))
    individuals_2 = random.sample(individuals, len(individuals))
    chosen = []
    for i in xrange(0, k, 4):
        chosen.append(tourn(individuals_1[i], individuals_1[(i + 1)]))
        chosen.append(tourn(individuals_1[(i + 2)], individuals_1[(i + 3)]))
        chosen.append(tourn(individuals_2[i], individuals_2[(i + 1)]))
        chosen.append(tourn(individuals_2[(i + 2)], individuals_2[(i + 3)]))
    return chosen

What's a good function header?
assistant
#Here's a good function header.

def selTournamentDCD(individuals, k):