gpt4 book ai didi

其他列表中的 Python 检查列表

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

我需要遍历 2 个列表(这些列表是“列表的列表”)这些列表中的每个项目都包含 [path,md5] 并制作一个 if 语句,其工作方式如下:(逻辑上)

save_list = []
for small_list2 in big_list2:
for small_list1 in big_list1:
if small_list2[0] == small_list1[0] and small_list2[1] != small_list2[1]:
save_list.append(small_list2)

是这样吗?而且,有更好的(也许是递归的方式)来做到这一点??

谢谢!!

编辑:示例输入:(md5 不真实也不合理)[路径,MD5]

big_list2 = [['/home/user/Desktop/folder/1.txt','93n8nv35732vb9527'],['/home/user/Desktop/folder/2.txt','43284fh234h'],['/home/user/Desktop/folder/3.txt','4534v4535v353']]

big_list1 = [['/home/user/Desktop/folder/1.txt','93n8nv35732vb9528'],['/home/user/Desktop/folder/2.txt','43284fh234h'],['/home/user/Desktop/folder/3.txt','4534v4535v353']]

输出应该是:'/home/user/Desktop/folder/1.txt','93n8nv35732vb9527'因为路径相同,md5不同

最佳答案

假设 small_list1small_list2 都不包含重复路径(出现在两个列表中的路径都可以),听起来您应该使用字典。而不是 [path, md5] 列表的列表,使字典将路径映射到校验和。然后,您可以高效地查找每个路径的校验和:

path_dict1 = something()
path_dict2 = something_else()
save_list = [(path, md5) for path, md5 in path_dict2.viewitems()
if md5 != path_dict1.get(path)]

这将比基于列表的解决方案运行得更快,后者所花费的时间与输入列表长度的乘积成正比。此解决方案所花费的时间与路径数量成正比。

关于其他列表中的 Python 检查列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18557379/

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