У меня есть генератор, который приводит ко мне кортеж и функция, которая собирает информацию от генератора и создает два отдельных списка:
labels = []
dataset = []
for data, label in list_data(folder):
dataset.append(data)
labels.append(label)
return dataset, labels
Я не уверен, если я не сверхразработка здесь, но такое чувство, что это не большая часть pythonic способа решить его. Я попробовал некоторые идеи пониманием списка, но оно всегда приводило к синтаксическим ошибкам.
Или возможно действительно ли это - лучшее решение, поскольку это гарантирует удобочитаемость?
Да, существует больше метода Pythonic выполнения этого точного взаимодействия: zip
dataset, labels = zip(*list_data(folder))
Звезда (*
) важно для сообщения zip
разархивировать кортежи данных. В Вашей функции затем, любой возврат просто zip(*list_data(folder))
(никакая потребность в для цикла или временных переменных, или просто используют встроенный без потребности в функции.
Для дальнейшего использования обратите внимание, что это было большим количеством вопроса о программировании, и таким образом вероятно, лучше спросил относительно stackoverflow.com.