算法:如何删除所有其他文件

Dev*_*ted 1 python algorithm

我有一个包含数千张图片的文件夹.我想删除所有其他图像.这样做最有效的方法是什么?用i%2 == 0遍历每一个仍然是O(n).有没有快速的方法来做到这一点(最好是在Python中)?

谢谢

Ale*_*lli 21

删除N个图像的一半,你不能比O(N)快!你知道,O()符号的手段(尤其)是恒定的乘法因素是不相关的,是吗?

  • 小心那里的感叹号......我是阅读障碍者,最初把它读成"不能比O(N!)快",这显然是错误的...在做数学时,不应该兴奋.你冒着指数增长的风险B-) (18认同)
  • ^^"做数学时不应该兴奋"lol (2认同)

mta*_*c85 11

import os
l = os.listdir('/some/dir/with/files')

for n in l[::2]:
    os.unlink(n)
Run Code Online (Sandbox Code Playgroud)