> > msg= 'hello world' >> > msg.split( ' ' )[ 'hello' , '' , '' , '' , 'world' ] 與我預(yù)想的結(jié)果不符,多個(gè)空格會(huì)被分割多次。 那有什么辦法可以達(dá)到 awk 一樣的效果呢? 有兩種方法。 第一種方法 不加參數(shù),這" />

chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何像 awk一樣分割字符串

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-02 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

若你使用過(guò) Shell 中的 awk 工具,會(huì)發(fā)現(xiàn)用它來(lái)分割字符串是非常方便的。特別是多個(gè)連續(xù)空格會(huì)被當(dāng)做一個(gè)處理。

[root@localhost ~]# cat demo.txt
hello      world
[root@localhost ~]#
[root@localhost ~]# awk '{print$1,$2}' demo.txt
hello world

可是轉(zhuǎn)換到 Python 上面來(lái)呢?結(jié)果可能是這樣的。

>> > msg='hello    world'
 >> > msg.split(' ')
['hello', '', '', '', 'world']

與我預(yù)想的結(jié)果不符,多個(gè)空格會(huì)被分割多次。

那有什么辦法可以達(dá)到 awk 一樣的效果呢?

有兩種方法。

第一種方法

不加參數(shù),這種只適用于將多個(gè)空格當(dāng)成一個(gè)空格處理,如果不是以空格為分隔符的場(chǎng)景,這種就不適用了。

>> > msg='hello    world'
 >> > msg.split()
['hello', 'world']

第二種方法

使用 filter 來(lái)輔助,這種適用于所有的分隔符,下面以 - 為分隔符來(lái)舉例。

>> > msg='hello----world'
 >> > msg.split('-')
['hello', '', '', '', 'world']
> >>
 >> > filter(None, msg.split('-'))
['hello', 'world']

是不是很神奇,filter 印象中第一個(gè)參數(shù)接收的是 函數(shù),這里直接傳 None 居然有奇效。

查看了注釋?zhuān)瓉?lái)是這個(gè)函數(shù)會(huì)適配 None 的情況,當(dāng)?shù)谝粋€(gè)參數(shù)是None的時(shí)候,返回第二個(gè)參數(shù)(可迭代對(duì)象)中非空的值,非常方便。

圖片

換用函數(shù)的寫(xiě)法,可以這樣

>> > msg='hello----world'
 >> > msg.split('-')
['hello', '', '', '', 'world']
> >>
 >> > filter(lambda item: True if item else False, msg.split('-'))
['hello', 'world']
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1867

    瀏覽量

    33100
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    22294
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24221
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在bash中分割字符串

    假設(shè)我們有個(gè)由逗號(hào)或者下劃線隔開(kāi)的多個(gè)單詞組成的字符串,需要拆分這個(gè)字符串提取各個(gè)單詞。
    發(fā)表于 12-07 17:10 ?4021次閱讀

    串口讀取的字符串字符串輸入控件輸入的字符串的差別

    發(fā)現(xiàn)很多時(shí)候串口讀取的字符串字符串輸入控件輸入的字符串雖然看著一樣,但是要進(jìn)行后續(xù)操作的話,卻總是不一樣的。大家有過(guò)這種感受吧,知道什么原
    發(fā)表于 06-06 11:44

    從串口讀取的字符串與輸入的字符串使用上效果不一樣?。?/a>

    請(qǐng)教各位大俠,用讀碼器從串口讀入的字符串在使用上和從字符串輸入窗輸入的字符串,看起來(lái)一樣,使用起來(lái)完全不同!為什么?怎么解決?
    發(fā)表于 09-23 14:46

    字符串字符串數(shù)組實(shí)現(xiàn)對(duì)漢字的分割

    輸入字符串,輸出字符串數(shù)組,實(shí)現(xiàn)對(duì)漢字的分割.
    發(fā)表于 12-23 14:09

    字符串的表示

    字符串的表示  隨著計(jì)算機(jī)在文字處理與信息管理中的廣泛應(yīng)用, 字符串已成為最常用的數(shù)據(jù)類(lèi)型之, 許多計(jì)算機(jī)中都提供字符串操作功能, 些計(jì)
    發(fā)表于 10-13 17:11 ?3260次閱讀
    <b class='flag-5'>字符串</b>的表示

    新手必知的Python:分割字符串的步驟及源代碼

    若你使用過(guò) Shell 中的 awk 工具,會(huì)發(fā)現(xiàn)用它來(lái)分割字符串是非常方便的。特別是多個(gè)連續(xù)空格會(huì)被當(dāng)做個(gè)處理。
    的頭像 發(fā)表于 08-25 10:48 ?2399次閱讀
    新手必知的Python:<b class='flag-5'>分割</b><b class='flag-5'>字符串</b>的步驟及源代碼

    什么是復(fù)制字符串?Python如何復(fù)制字符串

    連續(xù)幾篇文章都在寫(xiě) Python 字符串,這出乎我的意料了。但是,有的問(wèn)題,不寫(xiě)不行,特別是那種靈機(jī)動(dòng)想到的問(wèn)題,最后你發(fā)現(xiàn),很多人根本不懂卻又誤以為自己懂了。那就繼續(xù)刨根問(wèn)底,探究個(gè)明白吧
    發(fā)表于 11-25 10:32 ?3206次閱讀

    溫故而求知新:淺談Python的字符串

    字符串序列是種不可變序列,這意味著它不能可變序列一樣,進(jìn)行就地修改。
    發(fā)表于 11-25 14:12 ?501次閱讀

    strtok拆分字符串

    大家好,我是驚覺(jué),今天聊聊字符串字符串的使用場(chǎng)景非常之多,人機(jī)交互和雙機(jī)通信都會(huì)用到。比如:通過(guò)串口向單片機(jī)發(fā)送指令,以執(zhí)行操作或配置參數(shù)。單片機(jī)讀取傳感器數(shù)據(jù),數(shù)據(jù)格式是字符串
    發(fā)表于 01-13 15:46 ?8次下載
    strtok拆分<b class='flag-5'>字符串</b>

    文詳解JavaScript字符串

    JavaScript字符串是原始值。此外,字符串是不可變的。這意味著如果你修改一個(gè)字符串,你總是會(huì)得到個(gè)新的字符串。原始
    的頭像 發(fā)表于 12-08 16:36 ?1484次閱讀

    C語(yǔ)言字符串的引用方式

    在C語(yǔ)言程序中,字符串是存放在字符數(shù)組中的。 2. 用字符數(shù)組存放一個(gè)字符串,可以通過(guò)數(shù)組名和下標(biāo)引用字符串中的
    的頭像 發(fā)表于 03-10 14:57 ?2331次閱讀

    字符串的相關(guān)知識(shí)

    TCL 中的數(shù)據(jù)類(lèi)型只有種:字符串。這些字符串可以是字母、數(shù)字、布爾值、標(biāo)點(diǎn)符號(hào)等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他
    的頭像 發(fā)表于 03-29 11:41 ?1409次閱讀

    代碼字符串分割方法

    我們寫(xiě)代碼的時(shí)候,經(jīng)常會(huì)遇到這樣個(gè)場(chǎng)景,那就是分割字符串。比如說(shuō)把一個(gè)字符串分成N個(gè),或者說(shuō)按照N個(gè)字符
    的頭像 發(fā)表于 09-25 11:42 ?1255次閱讀

    oracle字符串split成多個(gè)

    Oracle是種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了許多強(qiáng)大的功能和函數(shù),用于處理和操作數(shù)據(jù)。其中之就是字符串分割(split)方法,該方法用于將
    的頭像 發(fā)表于 12-06 09:54 ?6223次閱讀

    labview掃描字符串怎么用

    的函數(shù): 文本掃描器(Text Scan)函數(shù):這個(gè)函數(shù)可以從一個(gè)字符串中提取出特定的數(shù)據(jù),例如數(shù)字或者其他文本。你可以指定要提取的數(shù)據(jù)的格式,如整數(shù)、浮點(diǎn)數(shù)等。文本掃描器函數(shù)還可以跳過(guò)不需要的字符字符串
    的頭像 發(fā)表于 12-26 16:58 ?2862次閱讀