2017-02-25 87 views
-1

我有一个非常长的字符串,并且正在寻找一种有效的方法来在每个第二个字符后分割字符串。 所以我想从 “NNATGDTA” 字符串得到以下列表: [ “NN”, “AT”, “GD”, “TA”]在Python中的每个第二个字符后分割一个字符串

是否有类似的list()的任何功能,这使上面提到的结果?

感谢您的帮助:)

+0

你有什么企图解决这个问题?你有任何你想要改进的代码吗? –

+0

我做了一个函数,写出我想要的东西,但它真的很慢。这里是: def make_pairs(string,out): (i,范围为0,len(string)-2,2): out.write(“%s \ n”%string [i:i + 2]) return – kmates

+0

's =“NNATGDTA”;在范围内(0,len(s),2)]打印[s [i:i + 2]]' –

回答

-3

此代码:

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'] 
+1

正如在[原始答案,您可能基于此]张贴(http://stackoverflow.com/questions/9475241/split-python-string-every-nth-character/9475270#9475270):*但效率不高:应用于字符串时:太多副本*。 –

+0

感谢您的帮助。不幸的是我的字符串长度是250522664,所以它很长,上面的代码太慢了。但是,如果我尝试了list()函数 - 它使得我的字符串中的单个字符 - 它快得多。所以我希望对我的问题应该有类似的功能。 – kmates

相关问题