J'ai une liste qui est créé dans une opération itertools.groupby
:Comment donner une liste pré-déballée?
def yield_unpacked_list():
for key, grp in itertools.groupby(something_to_groupby, key=lambda x: x[0]):
subset_of_grp = list(item[2] for item in list(grp))
yield key, subset_of_grp
Si, par exemple, subset_of_grp
se révèle être [1, 2, 3, 4]
et [5, 6, 7, 8]
:
for m in yield_unpacked_list():
print m
serait imprimer:
('first_key', [1, 2, 3, 4])
('second_key', [5, 6, 7, 8])
Maintenant, revenons à ma définition de fonction. Il est évident que ce qui suit est une erreur de syntaxe (l'opérateur *
):
def yield_unpacked_list():
for key, grp in itertools.groupby(something_to_groupby, key=lambda x: x[0]):
subset_of_grp = list(item[2] for item in list(grp))
yield key, *subset_of_grp
Je veux que le résultat suivant pour la mêmeprint
boucle sans les [list]
entre parenthèses:
('first_key', 1, 2, 3, 4)
('second_key', 5, 6, 7, 8)
Notez que print
est seulement à des fins d'illustration ici. J'ai d'autres fonctions qui bénéficieraient de la structure simplifiée tuple
.