[英]First and last occurence of a symbol (python without regex)
我正在处理来自“ACGT”字母表(基因序列)的字符串,在开头和结尾都用字母“N”填充:
NNN...NNACGT...GGCTAANNNN...NNN
我想找到实际序列开始和结束的位置。 可以通过使用正则表达式轻松完成,但我希望使用基本的 python 字符串操作有一个更简单的解决方案。 您的建议将不胜感激。
要获得剩余部分(从左侧和右侧移除填充),您似乎只需要:
<YourString>.strip('N')
如果您需要查找索引,可以参考lstrip
和rstrip
:
sStart = len(<YourString>)-len(<YourString>.lstrip('N'))+1
sEnd = len(<YourString>.rstrip('N'))
既然你提到你想找到“职位”。 下面的代码将为您提供实际序列在字符串中开始和结束的位置。
s = 'NNNNAANNNN'
i, j = s.find(next((x for x in s if x != 'N'), None)), s.rfind(next((x for x in reversed(s) if x != 'N'), None))
print(i, j)
print(s[i:j+1])
#Output
4 5
A A
使用条带()
s = "NNNNNACGTGGCTAANNNNNNN"
s = s.strip('N')
print(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.