如何检查字符串数组中的重复字母。蟒蛇

时间:2018-08-07 23:01:24

标签: python list

如果我有一个列表

word = ['cat','laap','cabb']

如何检查相邻字母是否重复?我当时在想我的位置可以转到数组的第一个索引,而j可以检查每个字母?这是正确的方法吗?

注意:我的代码中的选项卡可能是错误的,我发现标记代码上的堆栈有点奇怪。

words = ['cat','laap','cabb']
for i in range(len(words)): 
    for j in range(len(words)):
        if(words[i][j]==word[i][j+1]):
            print('dup')

3 个答案:

答案 0 :(得分:2)

我认为您想写的东西更像

words = ['cat','laap','cabb']

for word in words:
    for index, character in enumerate(word):
        if word[index + 1] == character:
            print('dup')

但是请注意,这在最后一个字母处失败(即使您的代码也是如此)。为避免这种情况,您可以编写

for word in words:
    for index, character in enumerate(word[:-1]):
        if word[index + 1] == character:
            print('dup')

答案 1 :(得分:0)

也许您也可以尝试将zipset comprehension结合使用:

results = {w for w in word for ch1, ch2 in zip(w, w[1:]) if ch1 == ch2}

答案 2 :(得分:0)

使用zip(word, word[1:])创建一个单词中连续字母的2个元素元组,将其转换为set并检查其长度是否为1以检查两个元素是否相同,然后使用any检查是否有字母对

>>> words = ['cat','laap','cabb']
>>> any(any(len(set(t))==1 for t in zip(w, w[1:])) for w in words)
True