如何计算这个python程序的复杂度?有什么办法可以改善这一点吗?



嗨,我正在编写这个程序,它根据文件的扩展名(.exe, .py, .docx)将文件组织到字典中,我现在使用的方法使用嵌套循环来做这件事。问题是,我需要循环到程序找到的所有扩展名的列表中,并检查所有具有相同扩展名的文件所在的文件列表,然后将对应的文件放入字典中,放在正确的键下。我目前的方法有效,但我想知道是否有任何方法可以提高程序的时间复杂度。

下面是所有代码:

from os import path, listdir, mkdir
import shutil

def main():
files = listdir()
extentions = []
grouped = {}
# Filter out folders from the files
for file in files:
if path.isdir(file):
files.pop(files.index(file))
continue

# Get the extentions of the files for creating the folders
for file in files:
extention = file.split(".")[-1]
if extention not in extentions:
extentions.append(extention)
# Organize files based on their extentions
for extention in extentions:
grouped[extention] = []
for file in files:                     # This is the important part
if file.endswith(extention):
grouped[extention].append(file)

print(files)
print(extentions)
print(grouped)

if __name__ == '__main__':
main()

复杂度0 (n), n -当前目录下的文件个数。

from os import path, listdir
from collections import defaultdict

def main():
files = listdir()
grouped = defaultdict(list)
for file in files:
if path.isfile(file):
extention = file.split(".")[-1]
grouped[extention].append(file)
print(files)
print(grouped)
print(grouped.keys())  # if you need extensions

if __name__ == '__main__':
main()

相关内容

  • 没有找到相关文章

最新更新