【问题标题】: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))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-24
        • 2023-01-02
        • 1970-01-01
        • 2012-04-15
        相关资源
        最近更新 更多