Skip to main content
 首页 » 编程设计

python之如何使这个结束修剪 python 脚本更快

2025年05月04日11www_RR

有什么建议可以让这个脚本运行得更快?对于这个脚本,我通常有两到一千万行以上。

while True: 
    line=f.readline() 
    if not line:break 
    linker='CTGTAGGCACCATCAAT' 
    line_1=line[:-1] 
    for i in range(len(linker)): 
        if line_1[-i:]==linker[:i]: 
            new_line='>\n'+line_1[:-i]+'\n' 
            seq_1.append(new_line_1) 
            if seq_2.count(line)==0: 
                seq_2.append(line) 
            else:pass 
        else:pass 

请您参考如下方法:

首先,您似乎在内循环中创建了很多字符串对象。您可以先尝试构建前缀列表:

linker = 'CTGTAGGCACCATCAAT' 
prefixes = [] 
for i in range(len(linker)): 
    prefixes.append(linker[:i]) 

此外,您可以使用 string 的方法 endswith 而不是在内部循环的条件中创建新对象:

while True: 
    line=f.readilne() 
    if not line: 
        break 
    for prefix in prefixes: 
        if line_1.endswith(prefix): 
             new_line='>\n%s\n' % line_1[:-len(prefix)] 
             seq_1.append(new_line_1) 
             if seq_2.count(line)==0: 
                 seq_2.append(line)   

我不确定那里的索引(比如 len(prefix))。也不知道它能快多少。