我的代码给出字符串的所有 k 个长子字符串(即 string[0:k]、string[1:k+1] 等)在小型测试字符串上工作正常,但在长(100 及更多)字符串上工作正常输出中的字符串丢失。可能是什么问题以及如何修复它?这是一个代码(当然,Python):
def possible_kmers (a, b):
kmers = []
i=0
while i<len(a)-b+1:
kmer = a[i:i+b]
kmers.append(kmer)
i=i+1
file = open("result.txt", "w")
kmers.sort()
for item in kmers:
file.write(item+'\n')
file.close()
最佳答案
我不确定为什么你的代码会在大输入时缺少字符串,但这段代码更干净、更封装,而且它可以工作:
def possible_kmers(s, sublen):
for i in range(len(s) - sublen + 1):
yield s[i:i+sublen]
kmers = sorted(possible_kmers(SOME_S, SOME_SUBLEN))
with open('result.txt', 'w') as outfile:
for kmer in kmers:
file.write('{}\n'.format(kmer)
关于Python 3.4 程序从字符串生成子字符串集没有给出正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916427/