问题描述
no column
1. 111-222-11
2. 112-333-12
3. 113-444-13
我想将值从111-222-11
格式化为111-222-011
,然后类似地格式化其他值。这是我在Python 3中使用的代码片段:
‘{:03}-{:06}-{:03}.format(column)
希望您能提供帮助。
解决方法
假设column
是一个变量,可以为其分配字符串值111-222-11
,112-333-12
,113-444-13
等,您想要将其更改为{{1} },111-222-011
,112-333-012
等,看来您尝试使用切片符号和113-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('-'))
作为分隔符,并将每个项目放入一个新字符串中,该字符串在最后一个字符之前添加-
字符。