Как добавить числа в строку с помощью Python или GREL

У меня есть >4000 чисел в столбце, которые нужно манипулировать.. Они выглядят так:040 413 560 89 или 0361 223240

Как это сделать в следующем формате:+49 (040) 41356089 или +49 (0361) 223240

Все они должны иметь один и тот же телефонный код страны +49, а затем соответствующий код города, заключенный в скобки, а некоторые уже имеют правильный формат.

3 ответа

Решение

Сделайте так, как это:

ls_alreadycorrected = ['(',')','+49']
str_in = '040 413 560 89' #or apply to list

for flag in ls_alreadycorrected:
    if flag not in str_in:
        how_many_spaces = str_in.count(' ')
        if how_many_spaces > 2:
            str_in = str_in.replace(' ','')
            str_out = '+049'+' ' + '(' + str_in[:3] + ') ' + str_in[-8:]
        else:
            str_in = str_in.replace(' ','')
            str_out = '+049'+' ' + '(' + str_in[:4] + ') ' + str_in[-6:]

Это только с учетом того, что у вас есть типы телефонных номеров. Для списка чисел поместите это сверху вместо str_in

for number in list_of_numbers:
    str_in = number

ура

Мы можем разбить строку на группы:

>>> groups = '040 413 560 89'.split()
>>> groups
['040', '413', '560', '89']

Мы можем нарезать группы и назначать переменные, а также объединять последующие группы в одну строку:

>>> city, number = groups[0], ''.join(groups[1:])
>>> city, number
('040', '41356089')

Мы можем отформатировать новую строку:

>>> '+49 ({}) {}'.format(city, number)
'+49 (040) 41356089'

Мы можем проверить, если номер уже начинается с +:

>>> '+49 (040) 41356089'.startswith('+')
True

Вы можете сделать это.

phone  = "456789"
cod = 123

final = str(cod) + phone

Результат "123456789"

Другие вопросы по тегам