如何在子字符串后捕获一定数量的字符?

时间:2019-03-04 03:01:28

标签: python string substring

我对编码非常陌生,在我遇到的一项作业的最后一个问题上需要帮助。我也不能使用正则表达式进行此分配。

我已经有了这个字符串,并且已经制作好了,所以我在'cat'出现后分割了字符串。

astr = 'accaggcatgattgcccgattccatgcggtcag'
x = astr.split('cat',1)[-1]
print(x)
gattgcccgattccatgcggtcag
y = astr.split('cat',2)[-1]
print(y)
gcggtcag

但是,如果我只想要字符串中每个'cat'之后的三个字母,该怎么办?例如,我想获取'gat''gcg'

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

使用切片,例如[:3]

astr = 'accaggcatgattgcccgattccatgcggtcag'
x = astr.split('cat',1)[-1][:3]
print(x)
y = astr.split('cat',2)[-1][:3]
print(y)

输出:

gat
gcg

另外,另一个想法可能是:

print(list(map(lambda x: x[:3],astr.split('cat')[1:])))

答案 1 :(得分:1)

您也可以一次性获得所有这些信息:

df

输出:

[x[:3] for x in astr.split('cat')[1:]]