【问题标题】:How to add space in between set amount of characters in Python?python - 如何在Python中设定数量的字符之间添加空格?
【发布时间】:2022-01-19 13:52:51
【问题描述】:
我有一个电话号码列表,这些需要以某种方式书写。
目前它们被列为“+3212345678”,我希望在一定数量的数字之后的字符之间添加空格。
结果应该是“+32 1 234 56 78”
【问题讨论】:
标签:
python
python-3.x
list
【解决方案1】:
您可以使用带有解包的格式方法为它提供每个单独的字符作为参数。这将使您可以控制分隔符并获得精美的格式化功能:
sep = "({}{}{}) {} {}{}{}.{}{}.{}{}" # {} are placeholders for digits
t = "+3212345678"
f = sep.format(*t)
print(f)
(+32) 1 234.56.78
您可以将此扩展到使用不同格式的字典,具体取决于电话号码的长度(或其他属性):
seps = { 6:"{}{}.{}{}.{}{}",
7:"{}{}{}.{}{}.{}{}",
8:"{}{} {}{}.{}{}.{}{}",
10:"({}{}) {} {}{}{}.{}{}.{}{}",
11:"({}{}{}) {} {}{}{}.{}{}.{}{}" }
t = "+3212345678"
f = seps[len(t)].format(*t)
print(f)
"(+32) 1 234.56.78"
t = "44345678"
f = seps[len(t)].format(*t)
print(f)
"44 34.56.78"
【解决方案2】:
在 python 中尝试以下操作
string="+3212345678"
n=3
string=string[0:n]+" "+string[n:]
string
'+32 12345678'
【解决方案3】:
您可以创建一个列表,在空格前存储 space_list 的字符数,并根据您的 space_list 在嵌套循环中将每个字符添加到新列表中,在内部循环之后添加一个空格。
def format_num(space_list: list):
fmt_num = ""
count = 0
for space in space_list:
for s in range(space):
fmt_num += phn_num[count]
count += 1
fmt_num += " "
return fmt_num
phn_num = "+3212345678"
spaces = [3, 1, 3, 2, 2]
print(format_num(spaces))