У меня есть список, созданный в рамках операции itertools.groupby
:
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
Если, например, subset_of_grp
окажется [1, 2, 3, 4]
и [5, 6, 7, 8]
:
for m in yield_unpacked_list():
print m
выведет:
('first_key', [1, 2, 3, 4])
('second_key', [5, 6, 7, 8])
Теперь вернемся к определению моей функции.Очевидно следующее является синтаксической ошибкой (оператор *
):
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
Я хочу, чтобы следующий результат для того же print
цикла был без скобок [list]
:
('first_key', 1, 2, 3, 4)
('second_key', 5, 6, 7, 8)
Обратите внимание, что print
здесь только для иллюстрации.У меня есть другие функции, которые выиграют от упрощенной структуры tuple
.