这个看似简单的问题困扰了我一段时间,我想有人可能会有所帮助。
我有一个简单的字符串
s = 'AAABCAA'
如何找到第一个字母“A”的重复次数? 答案应该是 3。
我试过:
from collections import Counter
c = Counter(s)
但是,这给出 'A' = 5,而不是 3。
请您参考如下方法:
您可以使用带有 break 语句的 for 循环。
s = 'AAABCAA'
counter=0
firstletter=s[0]
for each in s:
if each==firstletter:
counter+=1
else:
break
print(counter)
这只返回 3。
或者,您可以返回与字符串的第一个字符不同的字符串的第一个元素的索引:
import numpy as np
s = 'AAABCAA'
firstletter=s[0]
checklist=[(each==firstletter)*1 for each in s]
print(np.where(np.asarray(checklist)==0)[0][0])
在这种情况下,通过列表理解([(each==firSTLetter)*1 for each in s])我们生成了一个列表:
[1, 1, 1, 0, 0, 1, 1]
只要该位置的字符与字符串的第一个字符相同,该值就是 1。 然后 np.where(np.asarray(checklist)==0)[0][0] 给你第一个 0 的索引(即第一个字符不相同到这个新创建的列表的起始字符)。
