python中文本字符處理的簡單方法記錄

今天,跟大傢分享一下我做小項目時想出來的文本字符處理的方法,希望能對大傢有所幫助。

完整代碼:

strings = "我,是‘C|S;D|N!的:程【序】員#M,r&.;P'a#n?_&學?狂"#將字符串設置好

def String_Process(string):#定義一個字符處理函數,設置參數string,是有待處理的字符串。
 print("python使我快樂!!")
 print("未處理的字符串:",string)
 varchar = '‘'“”:#,!【】,&#|?|,&;;?:"'#人為設定字符集合
 ls = []#定義一個列表用於存儲拆散的字符
 for s in string:
  ls.append(s)#將字符串拆散存進列表中
 for element in ls:
  if element in varchar:#如果在字符集合內發現,則從列表中刪除
   ls.remove(element)
 String = ''#定義字符串
 for l in ls:#將列表中拆散的元素組合回去。
  String = String+l
 print("處理後的字符串:",String)#得到處理結果
String_Process(string=strings)#調用函數,傳入實參給形參。

運行結果,如下圖:

對於處理文本字符的思想在代碼中已經說明,關於代碼的解釋在註釋中也寫出瞭。我們把它通過函數進行封裝,當我們需要處理文本字符的時候,通過調用函數就可以實現文本字符處理瞭。當然,調用函數處理字符時需要得到string返回值以及註釋掉print,因為我們如果是在循環中調用,沒必要全部打印一遍,影響視覺對文本的分析。即修改代碼如下圖:

對於上面的文本處理代碼,我又做瞭一次更新,可以增加新的字符或者是字符串來更新字符集合,更加方便處理文本中的字符。

改進後的代碼,如下圖:

strings = "我,是‘C|S;D|N!的:程【序】員#M,r&.;②P'「(a#n」?_&學?狂..."#將字符串設置好

def Process(string):#定義一個字符處理函數,設置參數string,是有待處理的字符串。
  print("python使我快樂!!")
  print("未處理的字符串:",string)
  varchar = '‘'“”:#,!【】,&#|?|,&;;?:"'#人為設定字符集合
  var_ls = []
  for var in varchar:
    var_ls.append(var)
  print("這是當前的字符集合:",var_ls)
  while True:
    want = str(input("是否需要增加新的字符/字符集合?(yes or no)"))
    if want == 'yes':
      add_varchar = str(input("請輸入需要增加的新字符/字符集合:"))
      for var in add_varchar:
        var_ls.append(var)
      print("更新後的字符集合:",var_ls)
    elif want == 'no':
      break
    else:
      print("輸入有誤!!請重試!!")
      continue

  ls = []#定義一個列表用於存儲拆散的字符
  for s in string:
    ls.append(s)#將字符串拆散存進列表中
  for element in ls[:]:
    if element in var_ls:#如果在字符集合內發現,則從列表中刪除
      ls.remove(element)
    elif element not in var_ls:
      continue
  String = ''#定義字符串
  for l in ls:#將列表中拆散的元素組合回去。
     String = String+l
  print("處理後的字符串:",String)#得到處理結果
Process(string=strings)#調用函數,傳入實參給形參。

代碼的解釋在註釋中寫瞭,大傢如果對代碼不理解可以和我私信探討。

運行結果,如下圖:

總結

到此這篇關於python中文本字符處理的文章就介紹到這瞭,更多相關python文本字符處理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: