乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python語言中字符串的拆分,連接及拼接

       乙甲壬 2020-07-11

      原作者 Kyle Stratis Oct 01, 2018

      目錄

      • 字符串拆分

        • 無參數(shù)字符串拆分

        • 指定分隔符

        • 使用 Maxsplit 對拆分進(jìn)行限定

      • 字符串的連接及拼接

        • 使用運(yùn)算符 + 進(jìn)行字符串連接

        • 使用 .Join 進(jìn)行字符串連接

      • 合在一起來嘗試

      生活中總有幾樣注定的事:死亡、稅單以及需要處理字符串的程序員。 字符串可以有多種形式。 它們可以是非結(jié)構(gòu)化的文本,用戶名,產(chǎn)品描述,數(shù)據(jù)庫列表名,或者其它任何我們使用語言描述的內(nèi)容。

      既然字符串?dāng)?shù)據(jù)幾乎無處不在,那么掌握所使用的工具如何進(jìn)行字符串處理是非常重要的。 幸運(yùn)的是,與其它語言甚至舊版本的Python語言相比,Python語言對字符串的操作非常簡單。

      您將從本文中學(xué)習(xí)一些最基本的字符串操作:拆分,連接和拼接。 您不僅將學(xué)習(xí)如何使用這些工具,而且還將深入了解它們是如何工作。

      字符串拆分

      Python語言中,字符串是以str對象的形式表示的,是不可變的:這意味著不能直接更改內(nèi)存中的對象。 記住這兩個特點(diǎn)將會幫助您學(xué)習(xí)(并且記?。┤绾问褂?split。

      您猜到字符串的這兩個特征是如何與Python語言中的拆分功能相關(guān)的嗎?如果您猜的到 因?yàn)樽址且环N特殊類型,所以.split是一個實(shí)例方法,那么您就是正確的!在其它一些語言(如Perl)中,是將原始字符串用作獨(dú)立的.split函數(shù)的輸入,而不是使用方法調(diào)用字符串本身。

      注意:如何調(diào)用字符串方法

      這里顯示的 .split這種寫法就是對字符串實(shí)例進(jìn)行調(diào)用的方法。 可稱之為為靜態(tài)方法,但這并不理想的形式,因?yàn)樗容^“冗長”。為了完整起見,舉個例子:

      Python語言中字符串的拆分,連接及拼接

      與下面首選的方法一比較,就會覺得上面的寫法顯得有些笨拙了:

      Python語言中字符串的拆分,連接及拼接

      有關(guān)Python語言中的實(shí)例、類和靜態(tài)方法的更多內(nèi)容,請查看我們的Python深入教程

      字符串不可變會怎樣? 這其實(shí)是提醒您字符串方法不支持就地操作,但它們會在內(nèi)存中返回一個新對象。

      注意:就地操作

      就地操作是直接更改被調(diào)用的對象的操作。 常見的例子是對列表使用的.append方法:當(dāng)您對列表使用.append函數(shù)時(shí),原列表會被更改,原列表中填加了.append的輸入。

      無參數(shù)字符串拆分

      在深入學(xué)習(xí)字符串拆分之前,先看一個簡單的例子:

      Python 代碼:

      Python語言中字符串的拆分,連接及拼接

      輸出結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      這實(shí)際上是.split調(diào)用的一個特例,就是因?yàn)楹唵?,所以我選了它做例子。如果不指定任何分隔符,.split會使用空格做為分隔符。

      這種不帶參數(shù)直接調(diào)用.split的另一個特性是它會自動刪除字符串前導(dǎo)、尾隨以及連續(xù)的空格。 比較一下對下面的字符串調(diào)用split時(shí),不使用分割符和使用' '(空格)作為分割符時(shí)的結(jié)果:

      Python 代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python 代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      首先要注意的是,這個例子反映了Python語言中字符串的不可改變性:后面調(diào)用.split時(shí)是對原始字符串進(jìn)行操作,而不是對第一次調(diào)用.split后生成的列表進(jìn)行操作。

      第二個你應(yīng)該注意到的是,無參數(shù)調(diào)用.split會提取句子中的單詞并丟棄任何空格。

      指定分隔符

      .split(' ')的結(jié)果很直觀。 當(dāng)有前導(dǎo)或尾隨分隔符時(shí),您將得到一個空字符串,這可以在結(jié)果列表的第一個和最后一個元素中看到。

      當(dāng)有多個連續(xù)的分隔符(例如“this”和“is”之間以及“is”和“my”之間的多個空格),第一個將用作分隔符,后續(xù)的分隔符將進(jìn)入結(jié)果列表 作為空字符串。

      注意:調(diào)用.split時(shí)的分隔符

      雖然上面的示例使用單個空格字符作為.split的分隔符,但并沒有限制您使用的分隔符的類型或字符串長度。 唯一的要求是您的分隔符是一個字符串。 你可以使用從“...”到“separator”等任何東西。

      使用Maxsplit對拆分進(jìn)行限定

      .split有一個名為maxsplit的可選參數(shù)。 默認(rèn)情況下,.split將在調(diào)用時(shí)進(jìn)行所有可能的拆分。 但是,如果對maxsplit賦值后,只會生成指定數(shù)量的拆分。 用我們之前的示例字符串,可以看到maxsplit的運(yùn)行情況:

      Python 代碼:

      Python語言中字符串的拆分,連接及拼接

      運(yùn)行結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      如上所示,如果將maxsplit設(shè)置為1,則第一個空白區(qū)域?qū)⒆鳛榉指舴?,其余的部分將被忽略?讓我們做一些練習(xí)來測試一下到目前為止所學(xué)的一切。

      練習(xí): “ 自己試試看: Maxsplit”

      如果對maxsplit賦一個負(fù)數(shù),結(jié)果會是怎樣?

      答案: “ 自己試試看: Maxsplit”

      .split 將對所有的分隔符上進(jìn)行字符串拆分,這和不設(shè)置Maxsplit參數(shù)時(shí)的缺省設(shè)置是一樣的。

      練習(xí): “章節(jié)理解檢查”

      您最近拿到了一個逗號分隔(CSV)的文件,但是其格式編排的大有問題。 您的任務(wù)是將每行提取到一個列表中,該列表的每個元素代表該文件的列。 這個文件的格式有什么問題呢? 其中的“Address”字段中包含了多個逗號,但實(shí)際上需要在列表中表示為單個元素!

      假定讀入到內(nèi)存中的文件是下面這樣的多段字符串:

      CSV文件:

      Python語言中字符串的拆分,連接及拼接

      希望的輸出結(jié)果應(yīng)該是這樣的由列表組成的列表

      Python輸出:

      Python語言中字符串的拆分,連接及拼接

      內(nèi)層的列表是我們關(guān)心的CSV文件的列元素,每一個內(nèi)層的列表是CSV文件的一行,外層的列表把所有的行組合起來。

      答案: “章節(jié)理解檢查”

      這里給出我的答案。可以由幾種方法得到結(jié)果。重要的是如何使用.split,以及使用附加參數(shù)得到希望的結(jié)果:

      Python代碼:

      Python語言中字符串的拆分,連接及拼接

      我們調(diào)用了兩次.split。第一個調(diào)用可能理解起來有點(diǎn)難,但不要擔(dān)心!我們一步一步看進(jìn)去,您就會對這些表達(dá)式熟悉了。來看看第一個.split調(diào)用吧:unsplit.split(' n')[1:]。

      第一個元素是unsplit,是指向輸入字符串的變量。之后就是.split調(diào)用:. split(' n')。這里,我們使用了一個特殊字符 - 換行符 做為分隔符。

      是做什么的呢?顧名思義,它指明在讀取字符串的內(nèi)容時(shí),它之后的每個字符都應(yīng)顯示在下一行。像我們使用的input_string這樣的多行字符串中,每行的末尾都有一個隱藏的 n。

      這一行最后的部分用法可能有點(diǎn)新:[1:]。這條語句執(zhí)行到這個部分之前會輸出一個新的列表, [1:]看起來像列表索引表示,其實(shí)它就是一種列表索引的表示方法!這一行最后額外的索引表示法會為我們輸出一個列表切片。在本例中,我們?nèi)〕鏊饕?以及其后面的所有內(nèi)容,丟棄索引0處的元素。

      總之,我們遍歷一個字符串列表,其中每個元素代表多行輸入字符串中除了第一行之外的每一行。

      對每一行字符串,我們再次使用.split進(jìn)行字符拆分,但這次我們使用maxsplit僅拆分前兩個逗號,保留地址部分的內(nèi)容原封不動。 之后,我們把結(jié)果添加到已定義的列表數(shù)組中,并返回給調(diào)用者。

      字符串的連接及拼接

      另一個字符串的基本操作是與拆分字符串相反的操作:字符串連接。 如果您還沒有關(guān)注到這個功能,請不要擔(dān)心。 這只是把字符串“粘在一起”的一種奇特方式。

      使用 + 操作符進(jìn)行連接

      有幾種方法可以做到這一點(diǎn),具體取決于您要實(shí)現(xiàn)的目標(biāo)。 最簡單和最常用的方法是使用加號(+)將多個字符串添加到一起。 只需在您想要連接的字符串之間放置一個+:

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      和數(shù)學(xué)運(yùn)算一樣,您還可以將字符串相乘來進(jìn)行字符串重復(fù):

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      請記住,字符串本身是不可改變的! 如果想把字符串連接或重復(fù)的結(jié)果存在變量中,則必須將結(jié)果賦給新的字符串變量進(jìn)行保存。

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      如果不是不可改變的字符串,則full_sentence會輸出'Hello,world,world'。

      另一個需要注意的是Python語言不會進(jìn)行隱式字符串轉(zhuǎn)換。 如果您嘗試將字符串與非字符串類型連接,Python將引發(fā)TypeError:

      Pyton代碼:

      Python語言中字符串的拆分,連接及拼接

      結(jié)果:

      Python語言中字符串的拆分,連接及拼接

      出錯的原因是在Python語言中,您只能將字符串與其他字符串連接起來,這是中您需要注意到的Python語言的特點(diǎn)。如果您使用過諸如JavaScript之類的語言就會知道,這些語言中會嘗試進(jìn)行隱式類型轉(zhuǎn)換。

      未完,下篇請看本日推送的第二篇文章

      英文原文:https:///python-string-split-concatenate-join/
      譯者:Xindong

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多