Duas listas diferentes de um gerador de tupla

-2

Eu tenho um gerador, que me dá uma tupla e uma função que coleta informações do gerador e cria duas listas separadas:

labels = []
dataset = []
for data, label in list_data(folder):
    dataset.append(data)
    labels.append(label)
return dataset, labels

Não tenho certeza, se não estou super engenharia aqui, mas parece que não é a maneira mais patética de resolvê-lo. Eu tentei algumas idéias com compreensão de lista, mas sempre resultou em erros de sintaxe.

Ou talvez seja a melhor solução, pois garante legibilidade?

    
por Nav 17.02.2018 / 01:06

1 resposta

1

Sim, existe um método mais Python de fazer essa interação exata: zip

dataset, labels = zip(*list_data(folder))

A estrela ( * ) é importante para informar zip para descompactar as tuplas de dados. Em sua função, então, retorne apenas zip(*list_data(folder)) (não há necessidade de um loop for ou das variáveis temporárias, ou simplesmente use inline sem necessidade de uma função.

Para referência futura, observe que essa foi mais uma questão de programação e, portanto, é melhor perguntar sobre stackoverflow.com .

    
por hunteke 17.02.2018 / 05:32