检查相邻两个相同字母的出现情况
有没有什么方法可以在Python中找到字符串里两个连续的字符呢?
也许可以用正则表达式来帮忙?
举个例子:
a = "apple"
consecCheck(a) --> 返回 True
,因为这个字符串里有两个连续的p。
b = "candyman"
consecCheck(b) --> 返回 False
,因为没有找到连续的字符。
我能想到的唯一方法就是用一个循环来检查字符串,看看下一个字符是不是和前一个字符一样。
1 个回答
11
使用 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