python代码优化,使用set操作替换list,优化查找

使用set操作替换list,优化查找效率

使用 setlist 进行查找操作的效率是不同的。具体来说:

  • 列表 (list) 中的查找操作是线性的,时间复杂度为 𝑂(𝑛)。这意味着在列表中查找一个元素的时间会随着列表大小的增加而增加。

  • 集合 (set) 中的查找操作是基于哈希表的,时间复杂度为 𝑂(1)。这意味着在集合中查找一个元素的时间不会随着集合大小的增加而显著增加。

优化后的代码

通过将 exist_list 转换为 exist_set,你将查找操作的时间复杂度从 𝑂(𝑛)O(n) 降低到了 𝑂(1)O(1)。这样即使文件数量很多,查找的时间也几乎不会增加。

# 原代码(查找效率低)
exist_list = os.listdir('')

# 优化后的代码(查找效率高)
exist_list = os.listdir('')
exist_set = set(exist_list)

data_root = "/mnt/g/Zhang_pufen/raw/raw_frames"
exist_list = os.listdir('/mnt/g/Zhang_pufen/py/avqa_object_feat/')
exist_set = set(exist_list)  # 使用集合来提高查找效率

file_list = os.listdir(data_root)

# 过滤掉已经存在特征文件的视频
filtered_file_list = [file for file in file_list if (file + '.npy') not in exist_set]
for file_name in filtered_file_list:


评论

此博客中的热门博文

使用自己的github加速源

量化指标计算

申请证书

搭建属于自己的vpn节点—科学上网

wsl安装cuda

解决v2rayN的延迟是-1的问题

wsl虚拟机释放文件

wsl安装cuda10.2

WSL怎么使用本机进行快速克隆github代码