python中是否有一个方法可以帮助我在字符串中找到2个连续的字符?
也许正则表达式可能也有用?
例如:
a = "apple"
consecCheck(a) --> returns True
因为字符串中有2个连续的p
b = "candyman"
consecCheck(b) --> returns False
因为没有找到连续的字符
我能想到的唯一方法是循环查看字符串是否与下一个字符相同。
答案 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