Помогите поправить код python

def kebabize(string):
    new = [string[0].lower() if string[0].isalpha() else '']
    for c in string[1:]:
        if c in ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'):
            new.append('-')
            new.append(c.lower())
        elif c.isalpha():
            new.append(c)
    kebabize = ''.join(new)
    return kebabize
print(kebabize('9SOc9QrMdAYJZuZ'))  

возвращает оно -s-oc-qr-md-a-y-j-zu-z, мне надо чтоб возвращало s-oc-qr-md-a-y-j-zu-z, т.е. после первой цифры если идет буква в верхнем регистре, она преобразовывалась в мелкую и перед ней не ставилось тире.


Ответы (1 шт):

Автор решения: Exodus
def kebabize(string):
    new = []
    for c in string:
        if c.isalpha():
            new.append(c.lower())
            string = string.replace(c, '', 1)
            break
    for c in string:
        if c.isalpha():
            if c.isupper():
                new.append('-')
                new.append(c.lower())
            else:
                new.append(c)
    kebabize = ''.join(new)
    return kebabize
print(kebabize('9SOc9QrMdAYJZuZ'))  
→ Ссылка