在Python中的每个第二个字符后分割一个字符串
我有一个非常长的字符串,并且正在寻找一种有效的方法来在每个第二个字符后分割字符串。 所以我想从 “NNATGDTA” 字符串得到以下列表: [ “NN”, “AT”, “GD”, “TA”]在Python中的每个第二个字符后分割一个字符串
是否有类似的list()的任何功能,这使上面提到的结果?
感谢您的帮助:)
此代码:
def every_second_character(sequence, n):
while sequence:
yield sequence[:n]
sequence = sequence[n:]
print(list(every_second_character("NNATGDTA",2)))
会产生:
['NN', 'AT', 'GD', 'TA']
正如在[原始答案,您可能基于此]张贴(http://stackoverflow.com/questions/9475241/split-python-string-every-nth-character/9475270#9475270):*但效率不高:应用于字符串时:太多副本*。 –
感谢您的帮助。不幸的是我的字符串长度是250522664,所以它很长,上面的代码太慢了。但是,如果我尝试了list()函数 - 它使得我的字符串中的单个字符 - 它快得多。所以我希望对我的问题应该有类似的功能。 – kmates
你有什么企图解决这个问题?你有任何你想要改进的代码吗? –
我做了一个函数,写出我想要的东西,但它真的很慢。这里是: def make_pairs(string,out): (i,范围为0,len(string)-2,2): out.write(“%s \ n”%string [i:i + 2]) return – kmates
's =“NNATGDTA”;在范围内(0,len(s),2)]打印[s [i:i + 2]]' –