【发布时间】:2010-08-29 04:06:32
【问题描述】:
我有一个在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
我希望 same print 循环的以下结果没有 [list] 括号:
('first_key', 1, 2, 3, 4)
('second_key', 5, 6, 7, 8)
请注意,print 仅用于说明目的。我还有其他功能可以从简化的tuple 结构中受益。
【问题讨论】:
标签: python group-by yield itertools iterable-unpacking