【发布时间】:2022-01-13 13:24:40
【问题描述】:
我有一个 DNA 序列:
seq='AACGTTCAA'
我想计算有多少个字母等于下一个。在这个例子中,我应该得到 3(因为 AA-TT-AA)。
在我第一次尝试时,我发现这不起作用,因为 i 是一个字符串,而 1 是一个整数。
seq='AACGTTCAA'
count=[]
for i in seq:
if i == i+1: #neither i+=1
count.append(True)
else: count.append(False)
print(sum(count))
所以我尝试了这个:
seq='AACGTTCAA'
count=[]
for i in seq:
if i == seq[seq.index(i)+1]:
count.append(True)
else: count.append(False)
print(sum(count))
然后我收到这个我无法理解的输出。 其中 3 个 True 应该是 False (1,5,8) 尤其是 8,因为它是字符串的最后一个元素。
6
[True, True, False, False, True, True, False, True, True]
如果考虑用数组来做这件事,但我认为可能有一种简单的方法可以在字符串中做到这一点。谢谢
【问题讨论】:
-
我认为你的索引调用总是返回你正在寻找的字符的第一个位置,所以这就是你看到太多
Trues (doc) 的原因。我会按照下面@bichanna 的回答中的建议进行操作 -
AAA呢?
标签: python for-loop string-iteration