当前位置:  开发笔记 > 编程语言 > 正文

迭代python中的列表

如何解决《迭代python中的列表》经验,为你挑选了0个好方法。

我有序列L的列表(序列的1000多家公司)l = [ABCD,AABA,...].我还有一个f包含许多4个字母序列的文件(大约一百万个).我想l为每个序列选择最接近的字符串,f最多为汉明距离2,并更新计数器good_count.我为此编写了以下代码,但速度非常慢.我想知道它是否可以更快地完成.

def hamming(s1, s2):
    if len(s1) != len(s2):
            raise ValueError("Undefined for sequences of unequal length")  
    return sum(ch1 != ch2 for ch1, ch2 in zip(s1, s2))

f = open("input.txt","r")

l = [ABCD,AABA,...]

good_count = 0
for s in f:
     x = f.readline()
     dist_array = []
     for ll in l:
        dist = hamming(x,ll)
        dist_array.append(dist)
     min_dist = min(dist_array)
     if min_dist <= 2:
        good_count += 1
print good_count

它的工作原理快,如果lf虽小,但花费大量时间过长lf.请建议更快的解决方案.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有