python 获取固定长度数值组成的数字字符串,不够的左边补0


问题需求

需求:自动化生成固定宽度 width指定长度 length 的数值组成的数字字符串。如,想要生成宽度为 5,长度为100的数字字符串,示例如下:

“00001”,“00002”,“00003”,…,“00111” 等。

信息补充:
模拟生成数据时,需要对一些信息进行编码,标注其唯一性,想到用规定字母开头的 字符+指定长度组成的数字字符串 来构成想要的编码。

实现方法

经过一番折腾,发现python的 zfill() 方法可以很好的实现自己的需求。

zfill():返回指定长度的字符串,原字符串右对齐,前面填充0

  • 语法格式:str.zfill(width),width指定字符串的长度

举例,针对上述问题描述的一个简单实现如下:

# 指定字符串宽度为5,长度111的数字字符串序列
width = 5  # 指定宽度
length = 111 # 指定长度
str_code  = [str(num_code).zfill(width)  for num_code in range(length)]
print('结果:\n',str_code )

在这里插入图片描述
perfect,实现目标!
在这里插入图片描述

问题扩展

在上面问题的基础上,就可以根据自己的需求进一步将生成的字符串复杂化,诸如加指定的字母等。如下所示:

# 指定编码开头字符为 p
width = 5  # 指定宽度
length = 111 # 指定长度
str_code  = ['p' +str(num_code).zfill(width)  for num_code in range(length)]
print('结果:\n',str_code )

在这里插入图片描述
可以根据生成的列表,作为数据框的索引或者序列的索引,方便之后数据的提取,就能方便了。

猜你喜欢

转载自blog.csdn.net/weixin_42521211/article/details/113546102