Преобразование телефонных номеров


В БД некоего предприятия номера телефонов хранятся как попало и вам поручили написать функцию, которая приведёт их все к одному формату.

Функция должна называться format_numbers, она принимает на вход строку (исходный номер) и возвращает строку (номер в нужном формате).

Особенности номеров в БД:

  • помимо цифр может содержать дефисы -, пробелы, скобки и знак + (но + только первым символом)
  • номер всегда валиден (содержит 11 цифр)
  • номер всегда начинается с 8 или +7, причем + может быть только в начале номера
  • не может быть 2 идущих подряд дефисов, скобок или пробелов

Необходимо, чтобы на выходе любой номер стал такого формата: +7(909)101-10-10



def format_numbers(phone_number: str) -> str:
    return '+7({0}{1}{2}){3}{4}{5}-{6}{7}-{8}{9}'.format(*[i for i in phone_number if i.isdigit()][1:])


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: