<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          盤點一個字符串處理問題(拆分英文文本)

          共 2077字,需瀏覽 5分鐘

           ·

          2022-05-16 15:15

          點擊上方“Python共享之家”,進行關(guān)注

          回復“資源”即可獲贈Python學習資料

          明朝望鄉(xiāng)處,應見隴頭梅。

          大家好,我是皮皮。

          一、前言

          前幾天在Python最強王者群有個叫【老松鼠】的粉絲問了一道關(guān)于字符串處理問題,如下圖所示。

          原文本如下所示:

          比如"WeLovePython"
          轉(zhuǎn)化為為"We?love?python"

          意思就是輸出的字符串,第一個是大寫,后面全部是小寫。

          二、實現(xiàn)過程

          這里【冷喵】給了一個思路:挨個循環(huán) 如果是大寫字母檢查前面有沒有空格 沒有空格就加一個 最后把開頭的那個空格去掉。這里【瑜亮老師】給了一份代碼,如下圖所示:

          #?coding:utf-8

          #?@Time?:?2022/5/4?11:46
          #?@Author:?皮皮
          #?@公眾號:?Python共享之家
          #?@website?:?http://pdcfighting.com/
          #?@File?:?字符串.py
          #?@Software:?PyCharm
          text?=?"WeLovePython"
          res?=?''.join(["?"+i?if?i.isupper()?else?i?for?i?in?text]).strip()
          print(res)

          思路:如果是大寫字母就變成空格+大寫,否則就不變。這個代碼親測好使,運行之后結(jié)果如下。

          這里確實是實現(xiàn)了單詞的拆分,每個單詞的首字母大寫了。不過有個細節(jié)需要注意下,題目的要求是除了第一個字母大寫外,后面要變小寫。所以目前是解決了一半,還有一半需要繼續(xù)解決。

          這里【冷喵】給了一份代碼,如下所示:

          text?=?"WeLovePython"
          res?=?''.join(["?"?+?i?if?i.isupper()?else?i?for?i?in?text]).strip()
          print(res)
          b?=?res[0]?+?''.join([i.lower()?for?i?in?res[1:]])
          print(b)

          代碼運行之后,結(jié)果如下圖所示:

          【月神】后來在這個代碼的基礎(chǔ)上,也給了一份代碼,如下所示:

          text?=?"WeLovePython"
          res?=?text[0]?+?''.join(["?"?+?i?if?i.isupper()?else?i?for?i?in?text[1:]]).lower()
          print(res)

          res?=?''.join(["?"?+?i?if?i.isupper()?else?i?for?i?in?text]).strip().capitalize()
          print(res)

          一共兩種方法。

          后來【瑜亮老師】也補充了一份代碼,思路一致的,具體實現(xiàn)上有所變形。思路:先取出首字母,然后剩余的小寫不用動,大寫直接變成空格+小寫。

          text?=?"WeLovePython"
          res1?=?text[0]?+?''.join(["?"?+?i.lower()?if?i.isupper()?else?i.lower()?for?i?in?text[1:]])
          print(res1)

          后來【馮誠】也給了一個代碼,本質(zhì)上是一樣的,如下所示。

          text?=?"WeLovePython"
          res?=?''.join(["?"+i?if?i.isupper()?else?i?for?i?in?text]).strip()
          res1=res[:1]+res[1:].lower()
          res1

          后來【月神】還給了一份正則表達式的代碼,有點新奇。

          import?re

          text?=?"WeLovePython"
          result?=?re.sub(r'\w[A-Z]',?lambda?x:?'?'.join(x.group(0).lower()),?text)
          print(result)

          對正則表達式不熟悉的小伙伴,理解起來還是有點難懂的。這里稍微拆解了下,幫助大家理解,如下圖所示:

          三、總結(jié)

          大家好,我是皮皮。這篇文章主要盤點一個字符串處理問題(拆分英文文本),文中給出了五個方法,思路基本上都是一致的,如果你還有其他方法,也歡迎大家積極嘗試,一起學習,記得分享給我哦。

          最后感謝粉絲【老松鼠】提問,感謝【冷喵】、【逸】、【馮誠】、【瑜亮老師】和【月神】在運行過程中給出的思路和代碼建議,感謝粉絲【dcpeng】等人參與學習交流。

          小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學習群請在后臺回復【

          萬水千山總是情,點個【在看】行不行

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  快C我啊用力嗯91影视 | 黄色视频日本 | 中文字幕人妻无码蜜桃 | 色色中文字幕 | 色五月婷婷基地 |