程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 將駝峰字符串轉為下劃線形式

編輯:Python

1. 正則檢測字符串是否有大寫字母;

2. 如果有則將其轉為小寫形式並添加下劃線,使用新字符替代原大寫字符;

def turn_param_style(self, params: dict):
'''
將參數名的駝峰形式轉為下劃線形式
@param params:
@return:
'''
temp_dict = {}
for name, value in params.items():
temp_name = ""
if re.search("[A-Z]", name):
capital_letters = re.findall("[A-Z]", name)
for c in capital_letters:
lower_c = c.lower()
r_str = "_" + lower_c
temp_name = name.replace(c, r_str)
else:
temp_name = name
temp_dict.update({temp_name: value})
return temp_dict

其他的轉換方法,這裡沒有將駝峰字符都轉為小寫形式

變成下劃線的條件
①從第一個我們看不出什麼,只知道都是小寫
②從第二個我們得出信息:當前字母為大寫,前一個字母為小寫,需要在中間加入’_’
③從第三個我們得出信息:當前字母為大寫,前一個字母也為大寫,後一個字母為小寫,需要在當前字母和前一個字母之間加上’ _ ’
④得到的輸出全部為小寫字母,這個我們看作次要因素,最後一起轉為小寫

def turn_param_style(self, params: dict):
'''
將參數名的駝峰形式轉為下劃線形式
@param params:
@return:
'''
temp_dict = {}
for name, value in params.items():
new_name = ""
name += " " # 為了防止數據溢出
for i in range(len(name) - 1):
if i == 0:
new_name += name[i]
elif name[i].isupper() and name[i - 1].islower():
new_name += "_" + name[i]
# 如果不在前面加上name += " ",這裡會索引越界
elif name[i].isupper() and name[i - 1].isupper() and name[i + 1].islower():
new_name += "_" + name[i]
else:
new_name += name[i]
temp_dict.update({new_name: value})
return temp_dict

參考:

【Python】駝峰變量轉換為下劃線_InceptionZ的博客-CSDN博客_python 駝峰轉下劃線


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved