gpt4 book ai didi

python - 加速两个字符串的成对比较

转载 作者:太空狗 更新时间:2023-10-30 02:44:53 26 4
gpt4 key购买 nike

我有一个包含两个字符串的列表(包含一个序列和一些空格)。我需要成对地遍历两个字符串并比较每个字符并计算两者不等于空格的位置

我有这个,但它对我的需要来说太慢了。有什么办法可以加快速度吗?

from itertools import izip

def overlap(sequence_pair):
return sum(nucleotide1 != ' ' and nucleotide2 != ' ' for nucleotide1, nucleotide2 in izip(*sequence_pair))

if __name__ == '__main__':
sequence_pair = [' AT GT ',
' GTAGCG ']
print overlap(sequence_pair)

最佳答案

在纯 Python 中优化您的代码会很困难,但如果您从一开始就使用 NumPy 数组而不是 Python 列表/字符串,那么您可以获得显着的加速:

>>> import numpy as np
>>> sequence_pair = [' AT GT '*10000, ' GTAGCG '*10000]
>>> sequence_pair_arr = np.array([list(' AT GT '*10000), list(' GTAGCG '*10000)])
>>> %timeit overlap(sequence_pair)
100 loops, best of 3: 14 ms per loop
>>> %timeit np.all(sequence_pair_arr != ' ', axis=0).sum()
100 loops, best of 3: 2.2 ms per loop

关于python - 加速两个字符串的成对比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292950/

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