已重新实现的 starmap (FURB140)
派生自 refurb 代码检查工具。
有时提供修复。
此规则不稳定且处于预览状态。使用需要 --preview
标志。
作用
检查生成器表达式、列表和集合推导式,这些表达式和推导式可以用 itertools.starmap
替换。
为什么这不好?
当从迭代器中解包值以直接传递给函数时,优先使用 itertools.starmap
。
使用 itertools.starmap
更简洁易读。此外,它比生成器表达式更有效,并且在某些 Python 版本中,它比推导式更有效。
已知问题
自从 Python 3.12 以来,itertools.starmap
的效率低于推导式(#7771)。这是由于 PEP 709,它使推导式更快。
示例
建议改为