[英]how can I split strings into continuous substrings e.g: string_inputs: IN PYTHON3
how can I split strings into continuous sub strings eg: string_inputs:如何将字符串拆分为连续的子字符串,例如: string_inputs:
AAAATTTT ATATATAT
output_needed:输出_需要:
AA,AA,AA,AT,TT,TT,TT
string_inputs = "AAAATTTTATATATAT"
#Note the `len(string_inputs) - 1` in the range; do according to what you desire as your output
d_out = [string_inputs[i:i+2] for i in range(0, len(string_inputs) - 1)]
d_out = ['AA', 'AA', 'AA', 'AT', 'TT', 'TT', 'TT', 'TA', 'AT', 'TA', 'AT', 'TA', 'AT', 'TA', 'AT']
You can obtain every two substrings with zip()
here:您可以在此处使用zip()
获取每两个子字符串:
>>> string = 'AAAATTTTATATATAT'
>>> ','.join(x + y for x, y in zip(string, string[1:]))
'AA,AA,AA,AT,TT,TT,TT,TA,AT,TA,AT,TA,AT,TA,AT'
This is also another way:这也是另一种方式:
>>> ','.join(map(''.join, zip(string, string[1:])))
'AA,AA,AA,AT,TT,TT,TT,TA,AT,TA,AT,TA,AT,TA,AT'
Or even something like this:或者甚至是这样的:
>>> ','.join(map(lambda x, y: x + y, string, string[1:]))
'AA,AA,AA,AT,TT,TT,TT,TA,AT,TA,AT,TA,AT,TA,AT'
This does what you're looking for.这就是你要找的。
string = "AAAATTTTATATATAT"
step = 2
split = [string[i:i+step] for i in range(0, len(string), step)]
print(",".join(split))
step
is the chunk you want to split your string into. step
是您要将字符串拆分成的块。 And the last line joins it with the ,
as in your example to give you the final output AA,AA,TT,TT,AT,AT,AT,AT
最后一行将它与,
如您的示例中所示,为您提供最终输出AA,AA,TT,TT,AT,AT,AT,AT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.