Python 3.4 从字符串生成子串集的程序没有给出正确的输出
Python 3.4 program generating substrings set from string does not gives correct output
我的代码给出一个字符串的所有 k 个长子字符串(即字符串 [0:k]、字符串[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)
我的代码给出一个字符串的所有 k 个长子字符串(即字符串 [0:k]、字符串[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)