gpt4 book ai didi

python - 在项目列表上调用一个函数的最简洁的方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:16 25 4
gpt4 key购买 nike

在 python 2 中,我使用 map 将函数应用于多个项目,例如,删除与模式匹配的所有项目:

map(os.remove,glob.glob("*.pyc"))

当然我忽略了os.remove的返回码,我只想删除所有文件。它免费创建了一个列表的临时实例,但它有效。

在 Python 3 中,由于 map 返回迭代器而不是列表,因此上面的代码不执行任何操作。我找到了一个解决方法,因为 os.remove 返回 None,我使用any 来强制对完整列表进行迭代,而不创建 列表(更好的性能)

any(map(os.remove,glob.glob("*.pyc")))

但这似乎有点危险,特别是当将其应用于返回某些内容的方法时。另一种方法是用一句台词来做到这一点而不创建不必要的列表?

最佳答案

map()(以及从 2.7 到 3.x 的许多其他函数)返回生成器而不是列表的变化是一种内存节省技术。对于大多数情况,更正式地写出循环不会带来性能损失(为了可读性甚至可能是首选)。

我会提供一个例子,但 @vaultah 在评论中指出了它:仍然是一句话:

for x in glob.glob("*.pyc"): os.remove(x)

关于python - 在项目列表上调用一个函数的最简洁的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com