Это один из способов достичь того, что вы хотите сделать:
number = "12345678910"
print(
'number id {0}.{1}.{2}-{3}'.format(
*[number[i:i+3] for i in range(0,len(number), 3)]
)
)
#number id 123.456.789-10.
Есть несколько проблем с вашим кодом. Сначала первое число в "{0...}"
относится к позиционному аргументу в функции format()
. В вашем случае вы использовали все 0
, которое относится только к первому аргументу. Вот почему одна и та же подстрока повторяется снова и снова. (Обратите внимание, как я изменил его на {0}.{1}...{3}
.)
Я передаю *[number[i:i+3] for i in range(0,len(number), 3)]
в функцию форматирования, которая просто разбивает вашу строку на куски по 3.
print([number[i:i+3] for i in range(0,len(number), 3)])
#['123', '456', '789', '10']
Оператор *
распаковывает аргумент , который передает элементы списка по порядку format()
.
Обновление
Если @ user2357112 упомянуто в комментариях , в этом случае вам ничего не нужно заключать в фигурные скобки. Просто используйте {}
для представления заполнителей.
print(
'number id {}.{}.{}-{}'.format(
*[number[i:i+3] for i in range(0,len(number), 3)]
)
)