检查连续2次出现的同一个字母

时间:2014-05-24 02:02:15

标签: python regex

python中是否有一个方法可以帮助我在字符串中找到2个连续的字符?

也许正则表达式可能也有用?

例如:

a = "apple"

consecCheck(a) --> returns True因为字符串中有2个连续的p

b = "candyman"

consecCheck(b) --> returns False因为没有找到连续的字符

我能想到的唯一方法是循环查看字符串是否与下一个字符相同。

1 个答案:

答案 0 :(得分:9)

使用zip

>>> def consecCheck(s):
...     return any(c1 == c2 for c1, c2 in zip(s, s[1:]))
...
>>> consecCheck("apple")
True
>>> consecCheck("candyman")
False

zip在这里做什么(制作一对字符):

>>> s = 'apple'
>>> zip(s, s[1:])
[('a', 'p'), ('p', 'p'), ('p', 'l'), ('l', 'e')]

使用正则表达式(反向引用):

>>> import re
>>>
>>> def consecCheck(s):
...     return bool(re.search(r'(.)\1', s))
...
>>> consecCheck("apple")
True
>>> consecCheck("candyman")
False