我从文件中读取行,然后遍历循环中k大小的每个重叠子串,然后处理这些字符串。有什么更好的(更高效、更优雅的)方法来读取子字符串?没有循环我怎么能列一个清单?你知道吗
for line in lines[1::4]:
startIdx = 0
while startIdx + k <= len(line):
substring = line[startIdx:(startIdx+k)]
countFromSb[substring] = countFromSb.get(substring, 0) + 1
startIdx += 1
linesProcessed += 1
通过使用
collections.Counter
实例,它可以变得更加优雅在一个序列的固定大小片上迭代的速度不能比O(N)快,因此当前的方法已经非常有效了。你知道吗
就优雅性而言,您可以将迭代抽象为它自己的函数,这将使您当前的作用域不至于被一个字母的变量名搞得乱七八糟:
这也可以与Gribouillis建议使用计数器相结合,完全消除
for
块:相关问题 更多 >
编程相关推荐