gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 16:22:41 24 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/39023423/

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