是否删除连续出现两次的字母?

2024-09-30 08:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我生成了一个随机名称,但有时一些名称看起来有点像这样: “bbob”因此我想删除字符串中的字母,使其如下所示: “鲍勃”。现在我知道如何删除字符串中某个字母的所有重复项,但我只想删除连续出现两次的字母。但当然要留一个。以下是我迄今为止所做的工作

def Gen():
    letters = string.ascii_lowercase[:-3].replace('q','')
    print(letters)
    passed = False
    while passed == False:
        vowels = 4
        consanants = 2
        consanantCount = 0
        vowelCount = 0
        name = ''.join(random.choice(letters) for i in range(vowels+consanants))
        for letter in name:
            if letter in 'aeiou':
                vowelCount +=1
            else:
                consanantCount +=1
        if vowelCount == vowels and consanantCount == consanants:
            passed = True
        else:
            passed = False
    return name
print(Gen())

任何帮助都将不胜感激。谢谢大家!


Tags: 字符串namein名称falsefor字母gen
1条回答
网友
1楼 · 发布于 2024-09-30 08:34:24

哦,我明白你想做什么了。所以我要做的就是试试这样的东西。它将消除重复的字母,但只有当它们排成一行时:

输入:

reps = 1   # number of consecutive repeated chars allowed
name = 'ttomt'
name = ''.join(['' if i>reps-1 and e==name[i-reps] else e for i,e in enumerate(name)])

输出:tomt

希望这是有帮助的

相关问题 更多 >

    热门问题