检查相邻两个相同字母的出现情况

0 投票
1 回答
4078 浏览
提问于 2025-04-18 07:27

有没有什么方法可以在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

撰写回答