首页 > 解决方案 > 在 Python 中格式化

问题描述

我有一个值列表如下:

no column
1. 111-222-11
2. 112-333-12
3. 113-444-13

我想将值从111-222-11to111-222-011格式化并类似地格式化其他值。这是我在 Python 3 中的代码片段,我正在尝试使用它:

‘{:03}-{:06}-{:03}.format(column)

我希望你能提供帮助。

标签: python-3.x

解决方案


假设这column是一个可以分配字符串值111-222-11,112-333-12等的变量113-444-13,您希望将其更改为111-222-011,112-333-012113-444-013,看来您尝试使用切片表示法和format方法的组合来实现此目的。

切片符号

切片符号在应用于字符串时,将其视为由字符组成的类似列表的对象。字符串开头的字符的位置索引从零开始。字符串末尾字符的位置索引以-1. 第一个冒号:分隔切片的开头和结尾。与开头不同,切片的结尾不包含在其中。您可以像使用方括号来指示列表中项目的索引一样指示切片:

'111-222-11'[0:8]

会回来

'111-222-'

通常,字符串的第一个和最后一个字符的索引被跳过并由冒号暗示。

知道需要在分配给的字符串的最后两位数字之前添加前导零的确切位置column,您可以使用切片符号来完成:

column[:8] + '0' + column[-2:]

format方法

format方法是一种字符串格式化方法。因此,在将方法应用于字符串时,您希望在字符串周围使用单引号或双引号来指示它们:

'your output string here'.format('your input string here')

大括号中的数字不是切片。它们是占位符,其中format插入传递给方法的字符串。因此,结合切片和format方法,您可以在字符串的最后两位数字之前添加前导零,column如下所示:

'{0}0{1}'.format(column[:8], column[-2:])

不需要制作更多的切片,因为您只想在一个地方插入一个字符。

split方法

切片的替代split方法是使用通过分隔符拆分字符串的方法。该split方法返回一个字符串列表。*在将参数传递给format方法之前,您需要在它前面加上运算符以解压缩列表中的参数。否则,整个列表将传递给第一个占位符。

'{0}-{1}-0{2}'.format(*column.split('-'))

它将字符串拆分为一个列表,将其-视为分隔符,并将每个项目放入一个新字符串中,该字符串0在最后一个之前添加字符。


推荐阅读