0
我有大量从SQL查询返回的数据,然后分解成使用itertools.groupby()基团跳过在Python迭代
我需要跳过每个组的所述第一构件的第一构件,然后处理其余的人。将调用next()来做这件事吗?我对这种方式使用的迭代器不是很熟悉。
for group in itertools.groupby(...):
group.next()
for val in group...
我有大量从SQL查询返回的数据,然后分解成使用itertools.groupby()基团跳过在Python迭代
我需要跳过每个组的所述第一构件的第一构件,然后处理其余的人。将调用next()来做这件事吗?我对这种方式使用的迭代器不是很熟悉。
for group in itertools.groupby(...):
group.next()
for val in group...
理论是合理的,但写的是行不通的,因为(a)groupby
返回(key, iterator_over_group)
对,不能直接组的迭代,和(b)的next
方法已更名为__next__
代码在Python 3中(无论如何,你应该使用next
函数)。编写代码的正确方法是:
for key, group in itertools.groupby(...):
next(group)
for val in group:
...
是的。这应该工作。 '对于组中的val'真的只是调用'group.next()',直到它得到'StopIteration'。 – zondo
请注意,Python 3中不存在'.next()';它已被重命名为'.__ next __()'。无论哪种方式,你应该使用'next()'函数而不是方法。 – jwodder