Verificando se um número de ISBN está correto

Recebo alguns números de ISBN, por exemplo.3-528-03851 (inválido) ,3-528-16419-0 (válido). Eu devo escrever um programa que testa se o número do ISBN é válido.

Aqui está o meu código:

def check(isbn):
    check_digit = int(isbn[-1])
    match = re.search(r'(\d)-(\d{3})-(\d{5})', isbn[:-1])

    if match:
        digits = match.group(1) + match.group(2) + match.group(3)
        result = 0

        for i, digit in enumerate(digits):
          result += (i + 1) * int(digit)

        return True if (result % 11) == check_digit else False

    return False

Eu usei uma expressão regular para verificar a) se o formato é válido eb) extrair os dígitos na string ISBN. Embora pareça funcionar, sendo um iniciante em Python, estou ansioso para saber como poderia melhorar meu código. Sugestões?

questionAnswers(8)

yourAnswerToTheQuestion