Python: retorna valores de um loop sem sair

Hoje tenho uma lista de pessoas agrupadas por local. Eu quero produzir uma nova variável que dê um número para cada indivíduo dependente de seu lugar. O que eu gostaria que meus dados parecessem é:

place       individual
here        1
here        2
here        3
there       1
there       2
somewhere   1 
somewhere   2

Eu escrevi isto:

    nest="ddd", "ddd", "fff", "fff", "fff", "fff", "qqq", "qqq"

    def individual(x):
        i = 0
        j = 1
        while i < len(x):
            if x[i] == x[i-1]:
                print(j+1)
                i = i + 1
                j = j + 1
            else:
                print(1)
                i = i + 1
                j = 1

    individual(nest)

Isso imprime os valores que eu quero, no entanto, quando eu coloco o retorno lá, ele quebra o loop e retorna apenas o primeiro valor. Eu queria saber como posso retornar esses valores para que eu possa adicioná-los aos meus dados como uma nova coluna?

Eu li sobre rendimento? mas não tinha certeza se é apropriado. Obrigado pela ajuda!

Felicidades, Adam

questionAnswers(1)

yourAnswerToTheQuestion