目錄
-
- 問題需求
- 實作方法
- 問題擴充
問題需求
需求:自動化生成固定寬度 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 )
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9EVT4lEVNlXVq1EM4wmYwhGWhxGZzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuETOzEjMwETM3AjMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
perfect,實作目标!
問題擴充
在上面問題的基礎上,就可以根據自己的需求進一步将生成的字元串複雜化,諸如加指定的字母等。如下所示:
# 指定編碼開頭字元為 p
width = 5 # 指定寬度
length = 111 # 指定長度
str_code = ['p' +str(num_code).zfill(width) for num_code in range(length)]
print('結果:\n',str_code )
可以根據生成的清單,作為資料框的索引或者序列的索引,友善之後資料的提取,就能友善了。