跳到内容

reuse-of-groupby-generator (B031)

添加于 v0.0.260 · 相关问题 · 查看源码

源自 flake8-bugbear linter。

作用

检查是否多次使用了 itertools.groupby() 返回的生成器。

为什么这不好?

多次使用该生成器会导致第二次使用时无效。如果后续还需要该数据,则应将其存储为列表。

示例

import itertools

for name, group in itertools.groupby(data):
    for _ in range(5):
        do_something_with_the_group(group)

建议改为

import itertools

for name, group in itertools.groupby(data):
    values = list(group)
    for _ in range(5):
        do_something_with_the_group(values)