天天看點

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 )
           
python 擷取固定長度數值組成的數字字元串,不夠的左邊補0

perfect,實作目标!

python 擷取固定長度數值組成的數字字元串,不夠的左邊補0

問題擴充

在上面問題的基礎上,就可以根據自己的需求進一步将生成的字元串複雜化,諸如加指定的字母等。如下所示:

# 指定編碼開頭字元為 p
width = 5  # 指定寬度
length = 111 # 指定長度
str_code  = ['p' +str(num_code).zfill(width)  for num_code in range(length)]
print('結果:\n',str_code )
           
python 擷取固定長度數值組成的數字字元串,不夠的左邊補0

可以根據生成的清單,作為資料框的索引或者序列的索引,友善之後資料的提取,就能友善了。